亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于startScroll()中area.scrollTop++何時執行的問題

第一次執行setTimeout(startScroll,delay)的時候。先執行time=setInterval("scrollUp()",speed);

執行scrollUp(),的時候,area.scrollTop為0,那么就會直接跳到

if(area.scrollTop % iliHeight==0){
?? clearInterval(time);
?? setTimeout(startScroll,delay);
?? }

這個時候area.scrollTop為0,判斷結果為1,那么又重新回到了

function startScroll(){
? time=setInterval("scrollUp()",speed);
? area.scrollTop++;
? }

。

我這樣理解肯定是不對的,不理解的就是第一次執行startScroll

,其中的area.scrollTop++;是什么時候執行的?

?

正在回答

2 回答

? time=setInterval("scrollUp()",speed);
? area.scrollTop++;

我昨天 問過一個搞前端的工程師, 他說setInterval 并不是for循環一樣, 不執行完就不會跳出。

setInterval ?只是在speed的時間內回調scrollUp這個函數, 所以相對機器時間來講,中間的間隔足夠再執行其它語句, 所以你下面的area.scrollTop,基本上會和setInterval("scrollUp()",speed);同時執行, 不同的是:area.scrollTop++ ?只執行一次,就不再執行了, 后面只會執行setInterval 的循環

0 回復 有任何疑惑可以回復我~
#1

慕粉3308051 提問者

非常感謝!
2016-12-06 回復 有任何疑惑可以回復我~

按你的說法的話在if判斷前area.scrollTop++已經執行一次了,所以下面的才會執行下去,不然進入一個死循環,個人覺得最好把area.scrollTop++放在setInterval前

0 回復 有任何疑惑可以回復我~
#1

慕粉3308051 提問者

是這樣的,可是答案中的代碼的執行順序是怎樣的呢,很想弄明白這個問題。
2016-09-04 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
信息滾動效果制作
  • 參與學習       47740    人
  • 解答問題       333    個

萌妹子帶您快速學習滾動效果,掌握無縫滾動和歇間性滾動的制作方法

進入課程

關于startScroll()中area.scrollTop++何時執行的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號