js-定时器的应用,按键div控制向左移动

 封装一个左右移动的函数

	/*
				obj:要执行动画的对象
				target:执行的目标位置
				//左移动 目标最小 向右移动 目标最大 
				speed:移动的速度 传递的只有正值 这样可以使得原来的初始位置进行判断移到目标位置
				*/
				function move(obj, target, speed) {
					var dir = parseInt(getStyle(obj, "left")); //获取原来的样式值
					if(dir>target){
						speed=-speed;
					}
					clearInterval(timer);
					var timer = setInterval(function() {
						dir = dir + speed;
						//正数:右 负:左
						if (dir >= target && speed > 0 || dir <= target && speed < 0) {
							dir = target;
						}
						obj.style.left = dir + "px";
						if (dir == target) { //正好才会买组
							clearInterval(timer);
						}

					}, 30);
				};
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			* {
				margin: 0;
				padding: 0;
			}

			#box1 {
				height: 100px;
				width: 100px;
				background-color: red;
				margin-top: 20px;
				position: absolute;
				/* 	IE没有指定值的时候容易获取auto 所以我们最好指定 */
				left: 0px;
			}
		</style>
		<script>
			window.onload = function() {
				// setTimeout()	
				// clearTimeout()
				//
				var btn01 = document.getElementById("btn01");
				var btn02 = document.getElementById("btn02");
				var box1 = document.getElementById("box1");
				//保存定时器的标识
				var timer;
				btn01.onclick = function() {
			
					move(box1, 600, 10)
				}
				btn02.onclick = function() {
					move(box1, 0, 10)

				}
				/*
				obj:要执行动画的对象
				target:执行的目标位置
				//左移动 目标最小 向右移动 目标最大 
				speed:移动的速度 传递的只有正值 这样可以使得原来的初始位置进行判断移到目标位置
				*/
                var timer ;
				function move(obj, target, speed) {
					var dir = parseInt(getStyle(obj, "left")); //获取原来的样式值
					if(dir>target){
						speed=-speed;
					}
					clearInterval(timer);
					    timer = setInterval(function() {
						dir = dir + speed;
						//正数:右 负:左
						if (dir >= target && speed > 0 || dir <= target && speed < 0) {
							dir = target;
						}
						obj.style.left = dir + "px";
						if (dir == target) { //正好才会买组
							clearInterval(timer);
						}

					}, 30);
				};
				//obj获取的元素 name 样式名
				function getStyle(obj, name) {
					if (window.getComputedStyle) {
						return getComputedStyle(obj, null)[name]; //正常 
					}
					return obj.currentStyle[name]; //IE8--
				};


			};
		</script>
	</head>
	<body>
		<button id="btn01">点击按钮以后box1向右移动</button>
		<button id="btn02">点击按钮以后box1向左移动</button>

		<div id="box1"></div>
		<div
			style="width: 0; height: 1000px; border-left: 1px solid black;: 1px black solid; position: absolute; left: 600px;">
		</div>
		<div
			style="width: 0; height: 1000px; border-left: 1px solid black;: 1px black solid; position: absolute; left: 0px;">
		</div>
	</body>
</html>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值