js实现定时器及注意的问题

<html>
<head>
<style>
div{width:100px;height:100px;position:absolute;background:red;left:0;top:50px;}
</style>
<script>
 var timer=null;
function startMove()
{
    clearInterval(timer);//开定时器前先关闭定时器。否则会多开几个定时器,div的速度会变快。
    var oDiv=document.getElementById(‘div1‘);
   
    timer=setInterval(function(){
        
        if(oDiv.offsetLeft>=300)
        {
            clearInterval(timer);//关闭timer定时器后会继续运行下面的代码。因此要将oDiv.style.left=oDiv.offsetLeft+10+‘px‘;放到else里,避免clearInterval(timer)之后运行,否则会出现div 10px的向右移动。
            //停止定时器是下次不执行了,但是这次还要将函数跑完了。
        }
        else
        {
            oDiv.style.left=oDiv.offsetLeft+10+‘px‘;
        }
    },30);
}
</script>
</head>
<body>
<input type=‘button‘ value="开始运动" onclick=‘startMove()‘/>
<div id="div1"></div>
</body>
</html>


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。