闲来无事,打开网易云音乐,发现播放音乐时有好几款音效,属实夺人眼球,而网易云上的孤独星球音效是要vip权限才能开启的,这就让人不爽了,不想花钱那就手动撸一个出来自己边看边听歌,哇咔咔咔。由于是本人原创,所以转载或引用代码段还请标明来处~

最后打波广告,本人网易云账号 阿豹欧巴,哈哈哈。

网易云-《孤独星球》音效图:

本地效果:

canvas:

var canvas = document.getElementById('canvas'),ctx,cnt = 8000, //  发散宽度width = 15, //  粒子数目pointRadius = 0.6,  //  粒子大小(像素)l = 360, t = 360, r = 170, i,len,random, aryPoints = [],timer;
if(ctx = canvas.getContext('2d')) { aryPoints = Array.apply(null, {length: cnt});for(var i = 0, len = aryPoints.length; i < len; i++) {var deg = 360 * Math.random();var aa = l + r * Math.cos(deg / 180 * Math.PI) + width * Math.sin(2 * Math.PI * Math.random()),bb = t - r * Math.sin(deg / 180 * Math.PI) + width * Math.sin(2 * Math.PI * Math.random());aryPoints[i] = [l + r * Math.cos(deg / 180 * Math.PI) + width * Math.sin(2 * Math.PI * Math.random()), t - r * Math.sin(deg / 180 * Math.PI) + width * Math.sin(2 * Math.PI * Math.random())];}ctx.fillStyle = 'rgba(255, 255, 255, 1)';for(var i = 0, len = aryPoints.length; i < len; i++) {ctx.fillRect(aryPoints[i][0], aryPoints[i][1], pointRadius, pointRadius);}timer = setInterval(function() {for(var i = 0, len = aryPoints.length, deg, x, y, d; i < len; i++) {y = aryPoints[i][1];x = aryPoints[i][0];d = Math.sqrt((x - l) * (x - l) + (y - t) * (y - t));deg = Math.round(Math.asin(Math.abs(y - t) / d) / Math.PI * 180);if(x >= l) {aryPoints[i][0] = x + 1 * Math.cos(deg / 180 * Math.PI);} else {aryPoints[i][0] = x - 1 * Math.cos(deg / 180 * Math.PI);}if(y <= t) {aryPoints[i][1] = y - 1 * Math.sin(deg / 180 * Math.PI);} else {aryPoints[i][1] = y + 1 * Math.sin(deg / 180 * Math.PI);}if(d > r + 50 + 50 * Math.sin(2 * Math.PI * Math.random())) {if(x >= l) {aryPoints[i][0] = l + r * Math.cos(deg / 180 * Math.PI) + width * Math.sin(2 * Math.PI * Math.random());} else {aryPoints[i][0] = l - r * Math.cos(deg / 180 * Math.PI) + width * Math.sin(2 * Math.PI * Math.random());}if(y <= t) {aryPoints[i][1] = t - r * Math.sin(deg / 180 * Math.PI) + width * Math.sin(2 * Math.PI * Math.random());} else {aryPoints[i][1] = t + r * Math.sin(deg / 180 * Math.PI) + width * Math.sin(2 * Math.PI * Math.random());}}}canvas.width = 720;canvas.height = 720;ctx.fillStyle = 'rgba(255, 255, 255, 1)';for(var i = 0, len = aryPoints.length; i < len; i++) {ctx.fillRect(aryPoints[i][0], aryPoints[i][1], pointRadius, pointRadius);}}, 100);
}

css:

.disc {position: absolute;width: 1280px;height: 720px;left: 0;top: 0;background-color: rgba(0, 0, 0, .8);
}
.disc .disc-container {position: absolute;width: 720px;height: 720px;line-height: 720px;top: 0;margin-left: 50%;transform: translateX(-50%);-webkit-transform: translateX(-50%);/* background-color: rgba(0, 0, 0, .8); */
}
.disc .disc-container .disc-bg {position: absolute;width: 475px;height: 475px;background-image: url(../dist/playPage/disc/diskImg.png);background-size: contain;border: 0;border-radius: 50%;left: 50%;top: 50%;transform: translate(-50%, -50%);-webkit-transform: translate(-50%, -50%);
}
.disc .disc-container .rotate-container {position: absolute;width: 300px;height: 300px;background-image: url('./assets/aboli.jpg');background-size: contain;border: 0;border-radius: 50%;margin-left: -150px;margin-top: -150px;left: 50%;top: 50%;box-shadow: 0 0 20px rgba(0, 0, 0, .5);z-index: 10;transform: rotate(0deg);-webkit-transform: rotate(0deg);animation-name: rotate-poster;animation-duration: 20s;animation-timing-function: linear;animation-delay: 1s;animation-iteration-count: infinite;/* animation-fill-mode: forwards; */-webkit-animation-name: rotate-poster;-webkit-animation-duration: 20s;-webkit-animation-timing-function: linear;-webkit-animation-delay: 1s;-webkit-animation-iteration-count: infinite;/* -webkit-animation-fill-mode: forwards; */transform-origin: center center;
}
@keyframes rotate-poster {0% {/* transform: rotate(0deg);-webkit-transform: rotate(0deg); */}100% {transform: rotate(360deg);-webkit-transform: rotate(360deg);}
}
@-webkit-keyframes rotate-poster {0% {/* transform: rotate(0deg);-webkit-transform: rotate(0deg); */}100% {transform: rotate(360deg);-webkit-transform: rotate(360deg);}
}
.disc .disc-container .rotate-container-pause {position: absolute;width: 300px;height: 300px;background-size: contain;border: 0;border-radius: 50%;margin-left: -150px;margin-top: -150px;left: 50%;top: 50%;box-shadow: 0 0 20px rgba(0, 0, 0, .8);z-index: 10;
}
.disc .disc-container .disc-pointer-play {position: absolute;width: 200px;height: 300px;right: 0;margin-top: -100px;background-image: url(../dist/playPage/disc/diskPointer.png);background-size: contain;background-repeat: no-repeat;transform: rotateZ(0deg);-webkit-transform: rotateZ(0deg);-webkit-transform-origin-x: left;-webkit-transform-origin-y: top;animation: disc-pointer-play 1s ease-in .2s 1 forwards;-webkit-animation: disc-pointer-play 1s ease-in .2s 1 forwards;
}
@keyframes disc-pointer-play {0% {transform: rotateZ(0deg);-webkit-transform: rotateZ(0deg);}100% {transform: rotateZ(25deg);-webkit-transform: rotateZ(25deg);}
}
@-webkit-keyframes disc-pointer-play {0% {transform: rotateZ(0deg);-webkit-transform: rotateZ(0deg);}100% {transform: rotateZ(25deg);-webkit-transform: rotateZ(25deg);}
}
.disc .disc-container .disc-pointer-pause {position: absolute;width: 200px;height: 300px;right: 0;margin-top: -100px;background-image: url(../dist/playPage/disc/diskPointer.png);background-size: contain;background-repeat: no-repeat;transform: rotateZ(25deg);-webkit-transform: rotateZ(25deg);-webkit-transform-origin-x: left;-webkit-transform-origin-y: top;animation: disc-pointer-pause 1s ease-in .2s 1 forwards;-webkit-animation: disc-pointer-pause 1s ease-in .2s 1 forwards;
}
@keyframes disc-pointer-pause {0% {transform: rotateZ(25deg);-webkit-transform: rotateZ(25deg);}100% {transform: rotateZ(0deg);-webkit-transform: rotateZ(0deg);}
}
@-webkit-keyframes disc-pointer-pause {0% {transform: rotateZ(25deg);-webkit-transform: rotateZ(25deg);}100% {transform: rotateZ(0deg);-webkit-transform: rotateZ(0deg);}
}

html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>音效</title><link rel="stylesheet" href="index.css">
</head>
<body><div class="disc"><div class="disc-container"><div class="rotate-container"></div><canvas id="canvas"></canvas></div></div>
</body>
<script src="CosmicDust.js"></script>
</html>

仿网易云音乐鲸云音效-孤独星球相关推荐

  1. 【canvas】网易云音乐鲸云动效『水晶音波』的简单实现

    最近闲来无事,打开网易云音乐,发现还有鲸云音效这种东西,嗯?『水晶音波』,挺炫.嗯?黑胶VIP专享?(其实我已经是黑胶VIP)好像实现起来也不很复杂呀,所以花了一下午,实现了一个简单版本. 这是网易云 ...

  2. Android 贝塞尔曲线实战之网易云音乐鲸云特效,2021程序员进阶宝典

    一阶这个比较简单,因为没有在网上找到可以直接输入数学公式的工具,就手工推导了下. ![在这里插入图片描述](https://img- <Android学习笔记总结+最新移动架构视频+大厂安卓面试 ...

  3. Android 贝塞尔曲线实战之网易云音乐鲸云特效

    作者:哈哈将 -个推 Android 高级开发工程师 前言 APP开发市场已经告别"野蛮生长"时代,人们不再满足于APP外形创新,而将目光转向全方面的用户体验上.在这过程中,动效化 ...

  4. 模仿网易云音乐鲸云特效动效

    JinyunEffect 项目地址:tyhjh/JinyunEffect  简介: 模仿网易云音乐鲸云特效动效 更多:作者   提 Bug 标签: # Android 粒子特效--网易云鲸云特效 文 ...

  5. Android 贝塞尔曲线实战之网易云音乐鲸云特效,apm性能监控系统

    小说阅读 APP 的翻页效果. 简介 ===================================================================== 在开始实战之前,我们还 ...

  6. 网易云音乐动效Android,Web Audio在音频可视化中的应用(网易云音乐鲸云动效)...

    本文有两个关键词:音频可视化和Web Audio.前者是实践,后者是其背后的技术支持. Web Audio 是很大的知识点,本文会将重点放在如何获取音频数据这块,对于其 API 的更多内容,可以查看 ...

  7. 微信小程序仿网易云音乐(使用云开发,提供源码)

    微信小程序仿网易云音乐(使用云开发,提供源码)!!!!!!!!!!! 源码: 链接:https://pan.baidu.com/s/1z_ZnRVbT4vjEENimi8yBQQ 提取码:u0o3 一 ...

  8. 开源项目【LikeCloudMusic 云音】仿网易云音乐

    LikeCloudMusic 云音 仿网易云音乐v3.7.5,Material Design风格,基于MVP,使用RxBus作为事件总线通信库 效果图 目前功能 扫描本地歌曲 存储歌曲及歌单 后台播放 ...

  9. 用HTML+CSS仿网易云音乐网站(6个页面)_实训素材

    ⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIV+CSS 布局制作,HTML+CSS网页设计期末课程大作业 | 音乐网页设计 | 仿网易云音乐 | 各大音乐官网网页 | 明星 ...

最新文章

  1. easyui数据表格重置_Python办公自动化,自动更新表格,告别繁琐
  2. 22张深度学习精炼图笔记总结(附原版下载)
  3. 华人科学家,Yang-Kieffer算法之父杨恩辉斩获Eric E.Summer奖
  4. Kubernetes1.13.1部署Kuberneted-dashboard v1.10.1
  5. 自动化运维工具Ansible详细部署
  6. 梅林安装opkg后安装iperf3_centos7安装完成后没网
  7. 周志华《机器学习》课后习题解析(第四章):决策树
  8. html,css颜色,色系
  9. Android的三种网络联接方式(URL / HttpURLConnection | HttpClient | InetAddress )
  10. c语言窗口最大化,使用SDL处理最大化的窗口
  11. java 图像处理两例:图像缩放与圆角图片的制作
  12. IS-IS基础网络配置实例
  13. php 获取来源域名方法,PHP获取域名方法
  14. android color属性黑色,android – 未找到样式属性attr / colorSecondary
  15. 域名没备案使用七牛cdn加速
  16. 【Windows10_1809 + Ubuntu_18.04】+【SSD + HDD】双硬盘双系统装机心得分享
  17. 友盟分享长图片,如何截取长图片去分享
  18. 电子商务和国际贸易创新
  19. 深度强化学习-策略梯度算法深入理解
  20. 自动驾驶IDM与MOBIL模型

热门文章

  1. Python:9行代码制作聊天机器人
  2. 强烈推荐10本程序员要读的书
  3. 没有股权,公司还是马云们的,996对员工有什么用呢?
  4. 《时间简史》—— 读后总结
  5. python1e2_python – UnicodeDecodeError:’utf-8’编解码器无法解码位置434852中的字节0xe2:无效的连续字节...
  6. 「世界の中心に立って、愛を叫ぶ」という本を読んだ後の感想
  7. 程序设计天梯赛L3-20 至多删三个字符(dp,一生之敌)
  8. 计算机系统结构pdf张晨曦刘依,第1章计算机系统结构的基本概念张晨曦刘依www.Arch365.ppt...
  9. 长江大学c语言期末考试题0,长江大学C语言期末考试试卷
  10. 10 益智游戏——推箱子游戏