一个简单的动画:两个点在两个圆上运动。页面中有两个canvas,有一个背景设置为透明。
欢迎访问博主的网站:http://www.108js.com/link.html
效果图:
<!DOCTYPE html> <html> <head> <title>Making things move</title> <meta charset="gbk"> <script type="text/javascript"> var canvas,context; var canvasWidth,canvasHeight; var playAnimation = true; var startButton,stopButton; var canvas1,context1; var shapes = new Array(); function init() { canvas = document.getElementById("myCanvas"); context = canvas.getContext("2d"); canvasWidth = canvas.width; canvasHeight = canvas.height; startButton = document.getElementById("startAnimation"); startButton.disabled="disabled"; stopButton = document.getElementById("stopAnimation"); shapes.push(new Shape(150, 150, 100,5)); shapes.push(new Shape(300, 300, 100,10)); var canvas1 = document.getElementById("myCanvas1"); var context1 = canvas1.getContext("2d"); context1.arc(150,150,100,0,2*Math.PI,true); context1.stroke();//绘制圆 context1.beginPath(); context1.arc(300,300,100,0,2*Math.PI,true); context1.strokeStyle="red"; context1.stroke();//绘制圆 startButton.onclick=function() { this.disabled="disabled"; stopButton.disabled=""; playAnimation = true; animate(); } stopButton.onclick=function() { this.disabled="disabled"; startButton.disabled=""; playAnimation = false; } animate(); } var Shape = function(x, y,radius,angle) { this.x = x; this.y = y; this.radius=radius; this.angle = angle; }; function animate() { context.clearRect(0, 0, canvasWidth, canvasHeight); var shapesLength = shapes.length; for (var i = 0; i < shapesLength; i++) { var tmpShape = shapes[i]; var x = tmpShape.x+(tmpShape.radius*Math.cos(tmpShape.angle*(Math.PI/180))); var y = tmpShape.y+(tmpShape.radius*Math.sin(tmpShape.angle*(Math.PI/180))); if(i==0) tmpShape.angle += 5; else tmpShape.angle += 10; if (tmpShape.angle > 360) { tmpShape.angle = 0; }; context.fillRect(x, y, 10, 10); } if (playAnimation) { setTimeout(animate, 33); } } </script> </head> <body onload="init();"> <canvas id="myCanvas" width="800" height="450" style="background-color: transparent;position:absolute"></canvas> <canvas id="myCanvas1" width="800" height="450"></canvas> <div> <button id="startAnimation">Start</button> <button id="stopAnimation">Stop</button> </div> </body> </html>
上面的代码没有使用jquery,下面这个使用了jquery
演示效果及源码下载:http://www.108js.com/article/article3/30068.html