为了账号安全,请及时绑定邮箱和手机立即绑定

这样写,为什么会一直运动?

timer = setInterval(function(){              move.style.left = move.offsetLeft+ 10+"px";              if(move.offsetLeft >= 0){                  clearInterval(timer);              }          }, 30); 当move.offsetLeft >= 0成立时,为何clearInterval和+10会一直执行下去?

正在回答

2 回答

只看你贴出的代码,主要问题是判断条件的问题

move.style.left = move.offsetLeft+ 10+"px";放到if语句的后面,用else包围起来就可以解决问题。

BUG原因:

你把移动的代码写在了判断的前面,会导致你每次触发移入事件都会先移动10px,然后再清除计时器,如此循环往复,你的判断语句完全没有起到效果。


0 回复 有任何疑惑可以回复我~

因为你的那个判断条件一直是成立的呀,move.offsetLeft>=0这个条件一直成立,所以 clearInterval(timer)会一直执行。计时器也会一直执行。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这样写,为什么会一直运动?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信