<!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 停下来,这又是为什么?
2 回答
Walk_
TA贡献48条经验 获得超30个赞
这里clearInterval失效的原因是因为你的if判断语句永远不会为真。 因为你没有清除浏览器的默认8边距,即每次实际是加9px,400不是9的倍数,所以不会停止。
添加回答
举报
0/150
提交
取消