HTML5 canvas绘制雪花飘落

it2026-01-16  10

Canvas是HTML5新增的组件,它就像一块幕布,可以用JavaScript在上面绘制各种图表、动画等。没有Canvas的年代,绘图只能借助Flash插件实现,页面不得不用JavaScript和Flash进行交互。有了Canvas,我们就再也不需要Flash了,直接使用JavaScript完成绘制。我也是参考网上完成的看一下canvas绘制雪花飘落例图:

代码如下:

<!DOCTYPE html> <html lang="zh-CN"> <head> <meta chartset="UTF-8"> <title></title> <meta name="keywords" content="" /> <meta name="description" content="" /> <style> *{margin:0; padding:0;} canvas{background:black;} </style> </head> <body> <canvas id="canvas">您的浏览器不支持canvas画布</canvas> <script>   var can=document.getElementById('canvas');   var ctx=can.getContext('2d');   var wid=window.innerWidth;   var hei=window.innerHeight;   can.width=wid;   can.height=hei;   var snow=100; //雪花数量   var arr=[]; //保存雪花坐标,半径   for(var i=0; i<snow;i++){     arr.push({     x:Math.random()*wid,     y:Math.random()*hei,     r:Math.random()*7   })   } function DrawSnow(){   ctx.clearRect(0, 0, wid, hei);   ctx.beginPath();   for(var i=0; i<snow;i++){     var p=arr[i];     ctx.moveTo(p.x,p.y)     ctx.arc(p.x,p.y,p.r,0,2*Math.PI,false)     ctx.fillStyle="white"; }   ctx.fill();   ctx.stroke();   SnowFall()   ctx.closePath(); } //雪花飘落 function SnowFall(){   for(var i=0; i<snow; i++){     var p=arr[i];     p.y+=Math.random()*50+1;       if(p.y>hei){         p.y=0; } p.x+=Math.random()*50+1;   if(p.x>wid){     p.x=0;   } } } setInterval(DrawSnow, 100); </script> </body> </html>

转载于:https://www.cnblogs.com/yscode/p/7007237.html

相关资源:html5canvas制作3D逼真冬天雪景雪花飘洒动画特效
最新回复(0)