clearInterval 为什么无效 ?

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Document</title>

<style type="text/css">

div{

width: 200px;

background-color: red;

height:100px;

position: relative;

}

</style>

<script type="text/javascript">

window.onload=function (){

var div=document.getElementById("DIV");

var btn=document.getElementById("right");

var timer=null;

btn.onclick=function(){

clearInterval(timer);

timer=setInterval(function(){

if(div.offsetLeft==400){

clearInterval(timer);

}

else{div.style.left=div.offsetLeft+1+'px';}

},50)

};

};

</script>

</head>

<body>

<div id="DIV"></div>

<input type="button" value="right" id="right">

</body>

</html>


如果改了if(div.offsetLeft>=400) 则会在left:396px 停下来,这又是为什么?


害羞长颈鹿
浏览 3405回答 2
2回答

Walk_

这里clearInterval失效的原因是因为你的if判断语句永远不会为真。 因为你没有清除浏览器的默认8边距,即每次实际是加9px,400不是9的倍数,所以不会停止。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript