实现一个简易的雪花效果


这一个月人确实懒下来了,一转眼到月底了,还没有学习,那就给自己找个借口吧。

在电脑里发现了刚入门时,自己实现的雪花效果。

回味下吧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<canvas id="myCanvas" width="1000" height="600"></canvas>
<script type="text/javascript">
var canvas=document.getElementById('myCanvas');
var context=canvas.getContext('2d');

var particles=[]; //为粒子创建一个数组
for(var i=0;i<500;i++){
particles.push({
x:Math.random()*window.innerWidth, //雪花初始x位置
y:Math.random()*window.innerHeight,//雪花初始y位置
vx:(Math.random()*1-.5),//x方向上的速度
vy:(Math.random()*1+.5),//y方向上的速度
size:1+Math.random()*2,//雪花的大小
color:'#fff'//雪花颜色
})
}

function timeUpdate(e){
context.clearRect(0,0,window.innerWidth,window.innerHeight);//清除画布区域
var particle;
for(var i=0;i<500;i++){
particle=particles[i];
particle.x+=particle.vx;//更新雪花的x位置
particle.y+=particle.vy;//更新雪花的y位置
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(timeUpdate,40);//每过40毫秒执行一次函数
</script>
1
2
3
#myCanvas{
background: rgb(140, 140, 227);
}

我的微信公众号: 梨的前端小屋


文章作者: 梨啊梨
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 梨啊梨 !
  目录