js 定时器移动div案例

主要问题:多次点击开始定时器,会开启多个不同的定时器,会改变初始移动

解决方法:在定时器函数内首部添加一个清除定时器,使得每一次点击都清除上次定时器,并重建一个定时器

代码示例:

<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			div{
				height:40px;
				width:40px;
				background-color: orange;
				position: absolute;
			}
		</style>
	</head>
	
	<body>
		
		<button class="start">开始</button>
		<button class="end">结束</button>
		
		<div class="box">
		</div>
			
		<script>
			var box=document.querySelector(".box");
			var start=document.querySelector(".start");
			var end=document.querySelector(".end");
			
			var timer=null;
			
			start.onclick=function(){
				//解决多次点击加大移动距离的问题
				//第一次点击timer无值,第二次点击结束上一次timer,又重建一个timer继续移动
				clearInterval(timer);
				
				timer=setInterval(
		    	function()
		    	{
		    		var x=box.offsetLeft;
		    		x+=100;
		    		box.style.left=x+"px";
		    	}
		    ,1000);
			}
			
			end.onclick=function()
			{
				clearInterval(timer);
			}
			
		    
			
			
		</script>
	</body>
</html>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值