- 资源介绍
- 更新记录
- 安装教程
html5 canvas圣诞节雪花飞舞场景动画特效是一款很漂亮的雪花从天空中飘落动画效果。
js代码
<script> var c = document.getElementById('canvas'), $ = c.getContext("2d"), w = c.width = window.innerWidth, h = c.height = window.innerHeight; function makeItSnow() { var snow, arr = [], num = 1500, tsc = 1, sp = 1; sc = 1.3, t = 0, mv = 20, min = 1; for (var i = 0; i < num; ++i) { snow = new Flake(); snow.y = Math.random() * (h + 50); snow.x = Math.random() * w; snow.t = Math.random() * (Math.PI * 2); snow.sz = (100 / (10 + (Math.random() * 100))) * sc; snow.sp = (Math.pow(snow.sz * .8, 2) * .15) * sp; snow.sp = snow.sp < min ? min : snow.sp; arr.push(snow); } go(); function go(){ window.requestAnimationFrame(go); $.clearRect(0, 0, w, h); $.fillRect(0, 0, w, h); $.fill(); for (var i = 0; i < arr.length; ++i) { f = arr[i]; f.t += .05; f.t = f.t >= Math.PI * 2 ? 0 : f.t; f.y += f.sp; f.x += Math.sin(f.t * tsc) * (f.sz * .3); if (f.y > h + 50) f.y = -10 - Math.random() * mv; if (f.x > w + mv) f.x = - mv; if (f.x < - mv) f.x = w + mv; f.draw(); } } function Flake() { this.draw = function() { this.g = $.createRadialGradient(this.x, this.y, 0, this.x, this.y, this.sz); this.g.addColorStop(0, 'hsla(255,255%,255%,1)'); this.g.addColorStop(1, 'hsla(255,255%,255%,0)'); $.moveTo(this.x, this.y); $.fillStyle = this.g; $.beginPath(); $.arc(this.x, this.y, this.sz, 0, Math.PI * 2, true); $.fill(); } } } window.addEventListener('resize', function(){ c.width = w = window.innerWidth; c.height = h = window.innerHeight; }, false); makeItSnow();</script>
猜你喜欢
猜你在找
1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!lyebiz@qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
优源网 » html5 canvas圣诞节雪花飞舞场景动画特效
优源网 » html5 canvas圣诞节雪花飞舞场景动画特效
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 资源不能下载?
- 2021-02-13Hi,初次和大家见面了,请多关照!