canvas+js 完成雪花绘制

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<style type="text/css">
body {
background:#45aad7;
margin:0;
padding:0;
}
html, body{
height:100%;
width:100%;
}
#myCanvas{
height:100%;
width:100%;
display: block;
}
</style>

<body>
<canvas id="myCancva" width="1000px" height="600px">your browser does not support
the Canvas element</canvas>
<script type="text/javascript">
/* <!-- 因为Canvas本身是没有绘图能力的,所以我们需要通过他的getContext方法返回课绘图的对象-->*/
var canvas=document.getElementById('myCancva');
var context=canvas.getContext('2d');

var particles=[];//为雪花粒子创建一个数组
for(var i=0;i<1500;i++){//循环500次生成500个雪花
particles.push({//设置 x y 位置。以及速度。还有雪花的大小颜色
x:Math.random()*window.innerWidth,
y:Math.random()*window.innerWidth,
vx:(Math.random()*1-.5),//速度为-0.5----0.5
vy:(Math.random()*1+.5),//速度为0.5-1.5
size:1+Math.random()*2,//大小是1---3
color:"#fff"//白色

});
}
function timeUpdata(e){
//clearRect() 方法删除一个画布的矩形区域。
context.clearRect(0,0,window.innerWidth,window.innerHeight);//清除画布区域
var particle;
for(var i=0;i<1500;i++){//遍历所有雪花
particle=particles[i];
particle.x+=particle.vx;//更新雪花的 x y 位置
particle.y+=particle.vy;

if(particle.x<0){
particle.x=window.innerWidth;//当雪花移动到左侧以外时。使其在出现于窗口右侧
}
if(particle.x>window.innerWidth){
particle.x=0;
}
if(particle.y>window.innerHeight){//当雪花移动到窗口顶部以外时,使其重新出现在窗口内部
particle.y=0;
}
context.fillStyle=particle.color;//设置雪花颜色
context.beginPath();//开始绘制雪花
context.arc(particle.x ,particle.y, particle.size,0,Math.PI*2);
context.closePath();//闭合路径
context.fill();//填充颜色
}
}
setInterval(timeUpdata,40);//40毫秒调用一次
</script>
</body>


</html>

//clearRect() 方法删除一个画布的矩形区域。

//closePath() 方法创建从当前点到开始点的路径。

//fill() 方法填充当前的图像(路径)。默认颜色是黑色。

转载于:https://www.cnblogs.com/wxhhts/p/7726073.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值