<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
canvas{
border: 1px solid gray;
}
</style>
</head>
<body>
<canvas id="can" width="800" height="600"></canvas>
</body>
<script type="text/javascript">
var can=document.getElementById("can");
var ctx=can.getContext("2d");
var x=100;
function Ball(x,y,r,cl,sp){
this.x=x;
this.y=y;
this.r=r;
this.cl=cl;
this.sp=sp;
}
Ball.prototype.update=function(){
this.x+=this.sp;
}
Ball.prototype.render=function(){
ctx.beginPath();
ctx.arc(this.x,this.y,this.r,0,2*Math.PI);
ctx.fillStyle=this.cl;
ctx.closePath();
ctx.fill();
}
var objArr=[];
for(var i=0;i<20;i++)
{
var r=parseInt(Math.random()*60+1);
var sp=parseInt(Math.random()*5+1);
var cl="rgba("+parseInt(Math.random()*256)+","+
parseInt(Math.random()*256)+","+
parseInt(Math.random()*256)+",0.8)";
var ball=new Ball(x,20+i*50,r,cl,sp);
objArr[i]=ball;
}
setInterval(function(){
ctx.clearRect(0,0,800,600);
for(var i=0;i<objArr.length;i++)
{
objArr[i].update();
objArr[i].render();
}
},1000/30);
</script>
</html>
实现结果如下: