lengqiu
2017-09-20 22:36
timer = setInterval(function(){ move.style.left = move.offsetLeft+ 10+"px"; if(move.offsetLeft >= 0){ clearInterval(timer); } }, 30); 当move.offsetLeft >= 0成立时,为何clearInterval和+10会一直执行下去?
只看你贴出的代码,主要问题是判断条件的问题
把move.style.left = move.offsetLeft+ 10+"px";放到if语句的后面,用else包围起来就可以解决问题。
BUG原因:
你把移动的代码写在了判断的前面,会导致你每次触发移入事件都会先移动10px,然后再清除计时器,如此循环往复,你的判断语句完全没有起到效果。
因为你的那个判断条件一直是成立的呀,move.offsetLeft>=0这个条件一直成立,所以 clearInterval(timer)会一直执行。计时器也会一直执行。
JS动画效果
113925 学习 · 1443 问题
相似问题
回答 2
回答 1