課程
/前端開發(fā)
/JavaScript
/JS動畫效果
代碼如下:
if?(iTarget?==?icur)?{ if(fn){fn();} clearInterval(obj.timer); }
2017-08-03
源自:JS動畫效果 5-1
正在回答
因為如果這樣先判斷有fn()方法時,會先執(zhí)行調(diào)用fn()方法然后執(zhí)行clearintval(),但是這時候瀏覽器并不會等到fn()方法執(zhí)行完才去調(diào)用clearintval().它會直接清除fn()內(nèi)的定時器。正好老師下節(jié)課會講到同時調(diào)用兩個?startMove()方法時會遇到的問題,這時只會執(zhí)行第二個startMove()方法而不會一個一個調(diào)用也不會同時調(diào)用,原因就是第一個startMove()方法還沒執(zhí)行完第二個startMove()里的clearintval()就把第一個startMove()計時器清除了。這和你問的問題應(yīng)該是同一個道理吧。個人理解,適當(dāng)參考。
舉報
通過本課程JS動畫的學(xué)習(xí),從簡單動畫開始,逐步深入各種動畫框架封裝
1 回答if(flag){clearInterval(obj.timer);if(fn){fn()}}
1 回答鏈?zhǔn)竭\動調(diào)用fn的時候,為什么clearInterval(timer)必須在if(fn){fn();}這段代碼之前。放在后面就不起作用了。
4 回答我認(rèn)為最終的fn不會執(zhí)行。
2 回答為什么fn后面要加括號?
1 回答flag放到定時器外面為什么fn就沒法執(zhí)行了
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2017-08-07
因為如果這樣先判斷有fn()方法時,會先執(zhí)行調(diào)用fn()方法然后執(zhí)行clearintval(),但是這時候瀏覽器并不會等到fn()方法執(zhí)行完才去調(diào)用clearintval().它會直接清除fn()內(nèi)的定時器。正好老師下節(jié)課會講到同時調(diào)用兩個?startMove()方法時會遇到的問題,這時只會執(zhí)行第二個startMove()方法而不會一個一個調(diào)用也不會同時調(diào)用,原因就是第一個startMove()方法還沒執(zhí)行完第二個startMove()里的clearintval()就把第一個startMove()計時器清除了。這和你問的問題應(yīng)該是同一個道理吧。個人理解,適當(dāng)參考。