已采納回答 / 慕粉190336714
用控制臺查了一下,你的speed 是不變的,這樣的話,if(obj.offsetWidth==target)有可能永遠都不滿足,例如:用速度9從兩百運動到400,會剛好錯過400這個值,計時器就一直沒被清除。解決方法:把speed的計算放進setInterval里面的那個參數下代碼:? ? ? ? function startMove(obj,target){??????????? clearInterval(obj.timer);??????????? obj.timer=setInterval(fun...
2017-09-14
已采納回答 / Zzmkiv
代碼是沒錯的,但是你沒有清除瀏覽器默認樣式。*{margin:0;padding:0},所以你這里每次加上speed ?10px,得不到left值為0,會直接由-2px跳到16px
2017-08-06
已采納回答 / 為彭十七加油oO
因為如果這樣先判斷有fn()方法時,會先執行調用fn()方法然后執行clearintval(),但是這時候瀏覽器并不會等到fn()方法執行完才去調用clearintval().它會直接清除fn()內的定時器。正好老師下節課會講到...
2017-08-03
已采納回答 / 丶痞子紳士
兩種方式除了表面上的區別,瀏覽器解析和效率上沒有本質區別。第一種方式只是多了個匿名函數在里面調用sMove()函數第二種方式直接調用sMove()函數沒有優劣之分,如果一定要說哪個好,我本人推崇第一種方式,原因是我用的IDE可以直接轉到函數的定義,而第二種方式只有函數名,如果以后代碼量很多,不能很方便地找到這個函數本身。
2017-07-11