帮助中心
获取牛币
联系我们
关于我们
版权声明
素材牛首页
微博登录
QQ登录
微信扫码登录
注册
登录
新浪微博
QQ登陆
微信登录
热门搜索:
小程序
支付
Java
后台模板
上传
商城模板
jQuery
手机
Thinkphp
微信
Vue.js
首 页
网页特效
整站源码
PHP实例
网站模版
工具箱
常用代码
论坛
游戏源码
资源分享
当前位置:
首页
»
精选常用代码
» 粒子绕圆轨迹运动
粒子绕圆轨迹运动
浏览:611次
-
评论:0次
-
发布时间:2017-04-21
Html
Css
Js
请使用支持HTML5 canvas标签的浏览器查看
var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); var cw = canvas.width = window.innerWidth; var ch = canvas.height = window.innerHeight; var cx = cw / 2; var cy = ch / 2; var _mx = cx; var _my = cy; window.requestAnimFrame = (function() { return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60); }; })(); var Point = function(x, y, ang, cr) { this.x = x; this.y = y; this.ang = ang; this.cr = cr; this.v = Math.random() * 20 + 10; Point.list.push(this); } Point.list = []; for (let i = 0; i < 800; i++) { let ang = Math.random() * 2 * Math.PI; let r = 30 + Math.random() * 100; _mx = cx + 150 * Math.cos(2 * Math.PI * i / 800); _my = cy + 150 * Math.sin(2 * Math.PI * i / 800); new Point(_mx, _my, ang, r); } var lastFrameTime = Date.now(); var st = lastFrameTime; requestAnimationFrame(function draw() { ctx.save(); ctx.fillStyle = "rgba(255,255,255,.1)"; ctx.fillRect(0, 0, cw, ch); ctx.restore(); if (Date.now() - lastFrameTime < 16) { requestAnimationFrame(draw); return; } /********************************************/ Point.list.forEach(function(self, index) { ctx.beginPath(); ctx.fillRect(self.x + self.cr * Math.cos(self.ang), self.y + self.cr * Math.sin(self.ang), 2, 2); ctx.fill(); if (self.cr >= 1) self.cr -= self.cr / self.v; else self.cr -= 0.8; if (self.cr <= 1) { self.x = _mx; self.y = _my; self.ang = Math.random() * 2 * Math.PI; self.cr = 30 + Math.random() * 100; self.v = Math.floor(Math.random() * 20 + 10); } }); _mx = cx + 150 * Math.cos(2 * Math.PI * (Date.now() - st) / 1500); _my = cy + 150 * Math.sin(2 * Math.PI * (Date.now() - st) / 1500); /********************************************/ lastFrameTime = Date.now(); requestAnimationFrame(draw); }) document.onmousemove = function(e) { //_mx = e.pageX; //_my = e.pageY; }
↑上面代码改变,会自动显示代码结果
jQuery调用版本:
1.11.3
<!doctype html><html><head><meta charset="utf-8"><title>粒子绕圆轨迹运动-www.sucainiu.com</title><script src="https://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script><style>
</style></head><body>
<script>
</script>
</body></html>
立即下载
收藏
积分说明:注册即送10牛币,每日签到可获得5牛币,成为VIP会员可永久免牛币下载!
充值积分
充值会员
更多说明»
代码描述:随机生成一定数量粒子(且粒子角度和半径随机),后让粒子位置按照圆轨迹变化
纯CSS写的图标
点击图片放大
讨论这个常用代码(0)
回答他人问题或分享心得会奖励牛币
〒_〒 居然一个评论都没有……
文明上网,理性发言! 😉 阿里云幸运券,
戳我领取
发表评论
提交回复
我的积分余额:
0
已下载次数:
611
所需牛币:
5
开始下载
牛币获取:
签到、评论、充值
» 在线充值
(10牛币=1元)
成为VIP可永久免积分下载全部常用代码
» 查看详情
VIP
客服
签到
充值