已采納回答 / 慕數(shù)據(jù)9685367
javascript的計算能力不強,用小數(shù)的方式來做數(shù)學運算容易得出錯誤結果,建議需要運算的代碼盡量避開小數(shù)。
2017-09-18
已采納回答 / 慕粉190336714
用控制臺查了一下,你的speed 是不變的,這樣的話,if(obj.offsetWidth==target)有可能永遠都不滿足,例如:用速度9從兩百運動到400,會剛好錯過400這個值,計時器就一直沒被清除。解決方法:把speed的計算放進setInterval里面的那個參數(shù)下代碼:? ? ? ? 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()方法時,會先執(zhí)行調用fn()方法然后執(zhí)行clearintval(),但是這時候瀏覽器并不會等到fn()方法執(zhí)行完才去調用clearintval().它會直接清除fn()內的定時器。正好老師下節(jié)課會講到...
2017-08-03
已采納回答 / 丶痞子紳士
兩種方式除了表面上的區(qū)別,瀏覽器解析和效率上沒有本質區(qū)別。第一種方式只是多了個匿名函數(shù)在里面調用sMove()函數(shù)第二種方式直接調用sMove()函數(shù)沒有優(yōu)劣之分,如果一定要說哪個好,我本人推崇第一種方式,原因是我用的IDE可以直接轉到函數(shù)的定義,而第二種方式只有函數(shù)名,如果以后代碼量很多,不能很方便地找到這個函數(shù)本身。
2017-07-11