這樣寫,為什么會一直運動?
timer = setInterval(function(){ ? ? ? ? ? ? ?move.style.left = move.offsetLeft+ 10+"px"; ? ? ? ? ? ? ?if(move.offsetLeft >= 0){ ? ? ? ? ? ? ? ? ?clearInterval(timer); ? ? ? ? ? ? ?} ? ? ? ? ?}, 30); 當move.offsetLeft >= 0成立時,為何clearInterval和+10會一直執(zhí)行下去?
2017-09-23
只看你貼出的代碼,主要問題是判斷條件的問題
把move.style.left = move.offsetLeft+ 10+"px";放到if語句的后面,用else包圍起來就可以解決問題。
BUG原因:
你把移動的代碼寫在了判斷的前面,會導致你每次觸發(fā)移入事件都會先移動10px,然后再清除計時器,如此循環(huán)往復,你的判斷語句完全沒有起到效果。
2017-09-21
因為你的那個判斷條件一直是成立的呀,move.offsetLeft>=0這個條件一直成立,所以?clearInterval(timer)會一直執(zhí)行。計時器也會一直執(zhí)行。