在一个HTML5项目中用到了定时器,就学习了一下,和大家分享一下经验
需要用到一个方法:
setInterval("ballMove()", 1000);
他能用到什么地方呢,这就需要小伙伴们发挥想象了。在这里我用它写了一个图片自由运到的例子
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>ggggg</title> <link rel="stylesheet" type="text/css" href=""> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <!--js代码可以放置在任意位置,按照先后顺序依次执行 一般放在head标签之间--> <script type="text/javascript"> //定义全局变量 //小球坐标 ballX=0; ballY=0; //小球在x,y轴移动的方向 directX=1; directY=1; //小球移动 function ballMove(){ //小球移动 ballX+=2*directX; ballY+=2*directY; //同时修改小球的top 和width div2.style.top=ballY+'px'; div2.style.left=ballX+'px'; //window.alert(div1.offsetWidth);//offsetwidth在JS中是获取元素的宽,对应的还有offsetHeight //判断转向 //learInterval(i); if(ballX+div2.offsetWidth>=div1.offsetWidth ||ballX<=0){ directX=-directX; } if(ballY+div2.offsetHeight>=div1.offsetHeight || ballY<=0){ directY=-directY; } } //定时器 var i=setInterval("ballMove()",10); </script> </head> <body> <div id="div1" style="width:400px;height:300px;border:1px solid silver;POSITION: absolute; TOP: 100px"> <div id="div2" style="position:absolute;left:0px;top:0px;"><img src="ball.png"></div>//图片没有也能看到效果 </div> </body> </html>
那么我用Canvas绘制的图呢,我想描绘它所经过的路线
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script type="text/javascript" charset="utf-8"> //定时器 setInterval("ballMove()", 10); //定义全局变量 //小球坐标 ballX = 0; ballY = 0; //小球在x,y轴移动的方向 directX = 1; directY = 1; //小球移动 function ballMove() { //小球移动 ballX += 2 * directX; ballY += 1 * directY; var c = document.getElementById("mycanvas"); var cxt = c.getContext("2d"); cxt.fillStyle = "#FF0000"; cxt.beginPath(); cxt.arc(ballX, ballY, 2, 0, Math.PI * 2, true); cxt.closePath(); cxt.fill(); //判断转向 //learInterval(i); if (ballX + 2 >= c.width|| ballX <= 0) { directX = -directX; } if (ballY + 2 >= c.height|| ballY <= 0) { directY = -directY; } } </script> </head> <body> <canvas id="mycanvas" width="400" height="300" style="border: 1px solid red;"></canvas> </body> </html>大家可以试一下,挺有意思的。
原文地址:http://blog.csdn.net/li_li_lin/article/details/39323925