37、JavaScript的运动-----匀速运动

1、运动基础
     • Div运动起来
     • 速度——物体运动的快慢
     • 运动中的Bug
         –  不会停止
         –  速度取某些值会无法停止
         –  到达位置后再点击还会运动
         –  重复点击速度加快
2、匀速运动
     • 速度不变
3、运动的原理
     •  在开始运动时,关闭已有定时器
     •  把运动和停止隔开 (if/else)
4、匀速运动的代码
<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title>运动1</title>
		<style type="text/css">
			#div1 {
				width: 100px;
				height: 100px;
				position: absolute;
				background: red;
				left: 0;
				top: 50px;
			}
		</style>
		<script type="text/javascript">
			var timer = null;

			function startMove() {
				var oDiv = document.getElementById('div1');
				/**
				 * 在开始运动前,先清除定时器
				 * 防止多次点击按钮,开多个定时器函数
				 * 因为定时器函数为异步的,这样的话速度会变快
				 */
				clearInterval(timer);
				/**
				 * 用于实现运动的定时器函数 
				 */
				timer = setInterval(function() {
					/**
					 * 因为速度固定,所以是匀速运动
					 */
					var iSpeed = 7;
					/**
					 * 使用if和else,用于区别是否到达终点
					 */
					if (oDiv.offsetLeft >= 300) //是否到达终点,
					{
						//速度为7为301,所以判断条件用oDiv.offsetLeft >= 300,>=
						clearInterval(timer); //到达终点
					} else {
						oDiv.style.left = oDiv.offsetLeft + iSpeed + 'px'; //到达之前
					}
				}, 30);
			}
		</script>
	</head>

	<body>
		<input type="button" value="开始运动" οnclick="startMove()" />
		<div id="div1"></div>
	</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值