js的定时回调函数


<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<style type="text/css">
	div{
		width: 100px;
		height: 100px;
		position: absolute;
		top: 40px;
		left: 20px;
		background-color: pink;
	}
</style>
<script type="text/javascript">
	window.onload=function(){
		var btn=document.getElementById('btn');
		var div=document.getElementById('div');
		var num=0;
		btn.onclick=function(){ 
			doMove(div,'left',30,800,function(){
				doMove(div,'top',30,600,function(){
					doMove(div,'left',30,30,function(){
						doMove(div,'top',30,40);
					});
				});
			});
		}

		function doMove(obj,attr,dir,target,endFn){
			dir=parseInt(getStyle(obj,attr))<target?dir:-dir;
			clearInterval(obj.timer);
			obj.timer=setInterval(function(){
				 num=parseInt(getStyle(obj,attr))+dir;
				if(num>target&&dir>0||num<target&&dir<0){
					num=target;
				}
				obj.style[attr]=num+'px';
				if(num==target){
					clearInterval(obj.timer);
				endFn&&endFn();
			}
				
			},30);
		}

		function getStyle(obj,attr){
			return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj)[attr];
		}
	}
</script>

<body>
	<input id="btn" type="button" name="" value="走">
	<div id="div"></div>
</body>
</html>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值