帮助中心
获取牛币
联系我们
关于我们
版权声明
素材牛首页
微博登录
QQ登录
微信扫码登录
注册
登录
新浪微博
QQ登陆
微信登录
热门搜索:
小程序
支付
Java
后台模板
上传
商城模板
jQuery
手机
Thinkphp
微信
Vue.js
首 页
网页特效
整站源码
PHP实例
网站模版
工具箱
常用代码
论坛
游戏源码
资源分享
当前位置:
首页
»
精选常用代码
» canvas粒子特效
canvas粒子特效
浏览:1756次
-
评论:2次
-
发布时间:2019-01-18
Html
Css
Js
html { width:100%; height:100%; } body { height:100%; width:100%; } * { margin:0; padding:0; }
let canvas = document.getElementById("myCanvas"); let height = canvas.height = document.body.clientHeight; let width = canvas.width = document.body.clientWidth; let ctx = canvas.getContext("2d"); //生成随机数 function random(min, max) { return Math.floor(Math.random() * (max - min) + min); } //随机颜色 function randomColor() { return `rgba(${random(0,255)},${random(0,255)},${random(0,255)},1)`; //return `rgb(255,255,255)` } //小球类 function Ball(x, y, vx, vy, color, size) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.color = color; this.size = size; } //绘制 Ball.prototype.draw = function() { ctx.beginPath(); ctx.fillStyle = this.color; ctx.arc(this.x, this.y, this.size, 0, 2 * Math.PI); ctx.fill(); } Ball.prototype.update = function() { if ((this.x + this.size) >= width || (this.x - this.size) <= 0) { this.vx = -this.vx; } if ((this.y + this.size) >= height || (this.y - this.size) <= 0) { this.vy = -this.vy; } this.x += this.vx; this.y += this.vy } var list = []; for (let i = 0; i <= 200; i++) { let c = new Ball( random(1, width), random(1, height), random(-3, 3) * (1 / 5.0), random(-3, 3) * (1 / 5.0), randomColor(), random(2, 10) ); list.push(c); } //循环绘制 loop = () => { ctx.fillStyle = "rgb(0,0,0)"; ctx.fillRect(0, 0, width, height); for (let i = 0; i < list.length; i++) { for (let j = 0; j < list.length; j++) { let Lx = Math.abs(list[j].x - list[i].x); let Ly = Math.abs(list[j].y - list[i].y); let LL = Math.sqrt(Math.pow(Lx, 2) + Math.pow(Ly, 2)); if (LL <= 80) { ctx.beginPath(); ctx.strokeStyle = `rgba(255,255,255,${(80-LL)/80})` ctx.moveTo(list[i].x, list[i].y); ctx.lineTo(list[j].x, list[j].y); ctx.stroke(); } } list[i].draw(); list[i].update() } requestAnimationFrame(loop); } loop()
↑上面代码改变,会自动显示代码结果
jQuery调用版本:
1.11.3
<!doctype html><html><head><meta charset="utf-8"><title>canvas粒子特效-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会员可永久免牛币下载!
充值积分
充值会员
更多说明»
代码描述:这是一个简单的粒子特效demo,实现逻辑比较简单
jQuery获取当前日期时间
JS多图片展开收缩效果
讨论这个常用代码(2)
回答他人问题或分享心得会奖励牛币
Lv1 新人
Gn***nc
2019年02月13日
这个效果可以
回复
Lv3 码奴
洗***月
2019年05月22日
好看 厉害厉害
回复
文明上网,理性发言! 😉 阿里云幸运券,
戳我领取
发表评论
提交回复
我的积分余额:
0
已下载次数:
1756
所需牛币:
5
开始下载
牛币获取:
签到、评论、充值
» 在线充值
(10牛币=1元)
成为VIP可永久免积分下载全部常用代码
» 查看详情
VIP
客服
签到
充值