码迷,mamicode.com
首页 > Web开发 > 详细

我的项目5 计时器 定时器 JS实现图片运动

时间:2014-09-16 23:49:51      阅读:390      评论:0      收藏:0      [点我收藏+]

标签:js   html5   

在一个HTML5项目中用到了定时器,就学习了一下,和大家分享一下经验

               需要用到一个方法:

       setInterval("ballMove()", 1000);

            意思是每秒执行ballMove()方法一次

             他能用到什么地方呢,这就需要小伙伴们发挥想象了。在这里我用它写了一个图片自由运到的例子

            

<!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>
大家可以试一下,挺有意思的。

           

我的项目5 计时器 定时器 JS实现图片运动

标签:js   html5   

原文地址:http://blog.csdn.net/li_li_lin/article/details/39323925

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!