canvas:下雪
2019-07-07 22:33
99 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xswlXAD/article/details/95039175
demo
HTML
[code]<body> <canvas id="canvas" width="1000" height="750" style="background-color: gainsboro"></canvas> </body>
JS 行为定义canvas的渲染
[code]<script> (()=>{ document.addEventListener('DOMContentLoaded',function(){ //业务 let canvas = document.querySelector('#canvas'); let ctx = canvas.getContext('2d'); let circles = []; setInterval(function () { genareteCircle(); },50); setInterval(function () { circleRun(); },16); //生成雪花 function genareteCircle() { let circle = {}; circle.x = Math.floor(Math.random()*canvas.width); circle.y = Math.floor(Math.random()*canvas.height); // circle.y = 0; circle.r = Math.ceil(Math.random()* 10); circle.deltay = 0; // circle.r = 8; circle.color = {}; circle.color.r = Math.floor(Math.random()*256); circle.color.g = Math.floor(Math.random()*256); circle.color.b = Math.floor(Math.random()*256); circle.color.a = 1; circles.push(circle); } // 雪花运动 function circleRun(){ ctx.clearRect(0,0,canvas.width,canvas.height); circles.forEach(function (circle, index) { //增量逐渐增加 circle.deltay++; ctx.beginPath(); //绘制圆的圆心坐标逐渐增大(视觉上逐渐下降) ctx.arc(circle.x,(circle.y+circle.deltay),(circle.r),0,Math.PI*2); ctx.fillStyle = 'rgba('+circle.color.r+','+circle.color.g+','+circle.color.b+','+circle.color.a+')'; ctx.fill(); }); } }); })(); </script>
哎呀,效果很抽象,但雪花的行为是有了,好不容易可以写写博客了,虽然差不多只有我自己看,😂
相关文章推荐
- canvas 让你呼风唤雨,下雨下雪效果
- HTML5 canvas超简单和逼真的下雪特效
- javascript canvas 实现下雪效果 圣诞节专用
- [js高手之路]html5 canvas动画教程 - 下雪效果
- HTML5 Canvas绘制的下雪效果
- 使用JavaScript和Canvas实现下雪动画效果
- 使用Canvas实现下雪功能
- canvas 让你呼风唤雨,下雨下雪效果
- canvas 让你呼风唤雨,下雨下雪效果
- canvas 让你呼风唤雨,下雨下雪效果
- html5 canvas动画教程 - 下雪效果
- JS+Canvas 实现下雨下雪效果
- canvas下雪效果
- 使用JavaScript和Canvas实现下雪动画效果
- HTML5: Canvas API
- canvas 绘圆加边框
- popup-canvas
- 突袭HTML5之Canvas 2D入门5 - 事件与动画
- html5:<canvas>标签实现动态效果
- 改善用户体验,用图片的自身变化以及进度通知摆脱传统的进度条,okhttp,Canvas,Paint实现