复制了老师的代码,但是并不能生成雪花的效果,参考了前面师兄的代码,修改了一下就可以了。
具体修改在备注中有注释,供后来者参考。<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Canvas</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
html,body{
height: 100%;
}
#firstCanvas{
background-color: #000;
}
</style>
</head>
<body>
<canvas id="firstCanvas" width="999" height="666">大兄弟你的浏览器不支持Canvas!!!</canvas>
<script type="text/javascript">
var canvas=document.getElementById("firstCanvas");
var context=canvas.getContext("2d");
var particles = [];
for( var i = 0; i < 666; i++ ) {
particles.push( {
x: Math.random()*window.innerWidth,
y: Math.random()*window.innerHeight,
vx: (Math.random()-.5),
vy: (Math.random()-.5),
size: 1+Math.random()*3,
color: "#DDD"
} )
}
function timeUpdate(){
context.clearRect(0, 0, window.innerWidth, window.innerHeight);
var len = particles.length;
var particle;
for( var i = 0; i < len; i++ ) {
particle = particles[i];
particle.x += particles[i].vx;//此处particle.vx应改为particles[i].vx
particle.y += particles[i].vy;//此处particle.vy应改为particles[i].vy
if(particle.x<=0 || particle.x>=window.innerWidth){
particle.vx *= -1;
}
if(particle.y<=0 || particle.y>=window.innerHeight){
particle.vy *= -1;
}
context.fillStyle = particle.color;
context.beginPath();
context.arc(particle.x,particle.y,particle.size,0,Math.PI*1.99);//true应该去掉
context.closePath();
context.fill();
}
}
setInterval( timeUpdate, 40 );
</script>
</body>
</html>
|