定时器/龟兔赛跑

点击按钮可以使方块开始运动,可以开发龟兔赛跑小游戏

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			*{
				margin:0;
				padding:0;
			}
			#box1{
				width:100px;
				height: 100px;
				background-color: red;
				position: absolute;
				left: 0;
			}
			#box2{
				width:100px;
				height: 100px;
				background-color: yellow;
				position: absolute;
				left: 0;
				top:200px;
			}
		</style>
		<script type="text/javascript">
			window.onload = function(){
				
				
				var box1 = document.getElementById("box1");
				// 获取btn01
				var btn01 = document.getElementById("btn01");
				// 获取btn01
				var btn02 = document.getElementById("btn02");
				// var timer;
				
				btn01.onclick = function(){			
					move(box1,"left",800,20);					
				};
				btn02.onclick = function(){
					move(box1,"left",0,10);							
				};
				var btn03 = document.getElementById("btn03");
				btn03.onclick = function(){
					move(box2,"left",800,10);
					
				};
				var btn03 = document.getElementById("btn04");
				btn04.onclick = function(){
					move(box2,"height",800,10);
					
				};
				// var timer;
				// 简单动画函数
				// obj:要执行动画的对象
				// attr:执行动画的样式(left top hight width)
				// target:执行动画的目标位置
				// speed:移动速度(正右 负左)
				function move(obj,attr,target,speed){
					// 关闭上一个定时器
							clearInterval(obj.timer);
							
							// 获取元素目前位置
							var current = parseInt(getStyle(obj,attr));
							// 0-800时speed为正
							// 800-0时speed为负
							if(current>target){
								speed = -speed;
							}
							
							// 开启定时器
							obj.timer = setInterval(function(){
								
							// 获取box2的left值
							var oldValue = parseInt(getStyle(obj,attr));
							// 加10
							var newValue = oldValue + speed;
							if((speed <0 && newValue<target) || (speed > 0 && newValue > target)){
								newValue = target;
							}
							// 新值给box2
							obj.style[attr] = newValue + "px";
							if(newValue == target){
								clearInterval(obj.timer);
							}
						},30);
					};
				}
					// 获取当前显示样式
					function getStyle(obj,name){
						if(window.getComputedStyle){
							return getComputedStyle(obj,null)[name];
						}else{
							return obj.currentStyle[name];
						}
					}
		</script>
	</head>
	<body>
		<button id="btn01">box1向右移动</button>
		<button id="btn02">box1向左移动</button>
		<button id="btn03">box2向右移动</button>
		<button id="btn04">测试</button>
		<br/>
		<br/>
		<div id="box1"></div>
		<div id="box2"></div>
	</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值