帮助中心
获取牛币
联系我们
关于我们
版权声明
素材牛首页
微博登录
QQ登录
微信扫码登录
注册
登录
新浪微博
QQ登陆
微信登录
热门搜索:
小程序
支付
Java
后台模板
上传
商城模板
jQuery
手机
Thinkphp
微信
Vue.js
首 页
网页特效
整站源码
PHP实例
网站模版
工具箱
常用代码
论坛
游戏源码
资源分享
当前位置:
首页
»
精选常用代码
» canvas漫天烟花效果
canvas漫天烟花效果
浏览:984次
-
评论:1次
-
发布时间:2018-01-11
Html
Css
Js
#mycanvas { margin:0 auto; display:block; border:1px solid black; background-color:black; }
var RAF = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60); }; var can = document.getElementById("mycanvas") var ctx = can.getContext("2d"); var height = can.height; var width = can.width; var fires = []; var booms = []; var edbooms = [] var i = 0, j = 100; function fireBoom() { booms.forEach(function(boom, index) { boom.b += 1; if (boom.b > 50) { edbooms.push(booms[index]) booms.splice(index, 1); return; } var len = boom.bl.length; var x = 0, y = 0; var bl = 0; for (var i = 0; i < len; i++) { boom.bl[i] += boom.bv[i]; ctx.beginPath(); x = boom.x + Math.cos(boom.pi[i]) * boom.bl[i]; y = boom.y + Math.sin(boom.pi[i]) * boom.bl[i]; ctx.fillStyle = ctx.shadowColor = "#50" + boom.color; ctx.fillRect(x, y, 4, 4); ctx.fill(); } }) } function fireUp() { fires.forEach(function(fire, index) { ctx.beginPath(); fire.x += fire.kx; fire.v -= 0.5; if (fire.y < fire.by) { var len = 32; var boom = []; var bl = []; var pi = []; var p = Math.PI * 2 / len; for (var i = 0; i < len; i++) { boom.push((1 + Math.random())) bl.push(0) pi.push((i * p + p * Math.random())) } booms.push({ x: fire.x, y: fire.y, b: 0, bv: boom, bl: bl, pi: pi, color: parseInt(1000 + 9000 * Math.random()) }); fires.splice(index, 1) return; } fire.y = fire.y - fire.v * 0.05; ctx.fillStyle = ctx.shadowColor = "#50FFFF"; ctx.fillRect(fire.x, fire.y, 4, 4); ctx.fill(); }) } animate() setInterval(addFire, 500) function animate() { ctx.globalCompositeOperation = 'source-over'; ctx.shadowBlur = 0; ctx.fillStyle = 'rgba(0,0,0,alp)'.replace('alp', 0.03); ctx.fillRect(0, 0, width, height); ctx.globalCompositeOperation = 'lighter'; fireUp(); fireBoom(); RAF(animate); } function addFire() { var fire = { x: width / 4 + Math.random() * (width / 2), y: height, v: 100 + 20 * Math.random(), kx: -1 + Math.random() * 2, by: 100 + 50 * Math.random(), } fires.push(fire); }
↑上面代码改变,会自动显示代码结果
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会员可永久免牛币下载!
充值积分
充值会员
更多说明»
代码描述:简单的烟花效果
用canvas编写的烟花效果,主要利用canvas的globalCompositeOperation属性
jQuery表格内容编辑
jQuery简单的表单验证效果
讨论这个常用代码(1)
回答他人问题或分享心得会奖励牛币
Lv10 CTO
华***n
2018年01月12日
学习了~ 感谢分享
回复
文明上网,理性发言! 😉 阿里云幸运券,
戳我领取
发表评论
提交回复
我的积分余额:
0
已下载次数:
984
所需牛币:
5
开始下载
牛币获取:
签到、评论、充值
» 在线充值
(10牛币=1元)
成为VIP可永久免积分下载全部常用代码
» 查看详情
VIP
客服
签到
充值