第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

var isTop = true; window.onscroll=function(){ if (!isTop) { clearInterval(time); }; isTop= false; } 這段代碼表示沒看懂,哪位朋友能幫我指點(diǎn)一二啊

正在回答

4 回答

首先你點(diǎn)擊回到頂部時(shí),滾動(dòng)條開始往回滾,這時(shí)候istop為true,因?yàn)闈L動(dòng)條滾動(dòng)觸發(fā)window.onscroll 事件,!istop為false不執(zhí)行clearInterval(timer);但是下面的isTop=false;再將isTop置為false。這時(shí)候你人為滾動(dòng)鼠標(biāo),則再次觸發(fā)window.onscroll 事件,此時(shí)!istop為true 執(zhí)行clearInterval(timer);則滾動(dòng)條停下來

8 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Sunshine518

下面的isTop=false;再將isTop置為false,這時(shí)候人為滾動(dòng)鼠標(biāo)和下面的定時(shí)器都同時(shí)還在運(yùn)行吧,為什么不是在這在之前定時(shí)器先把isTop置為true呢,怎么可以通過人為滾動(dòng)鼠標(biāo)就直接認(rèn)定isTop=false,而不用再經(jīng)過下面的定時(shí)器isTop=true,畢竟它是{ if (!isTop) { clearInterval(time); }; isTop= false; } ,而不是{ isTop= false; if (!isTop) { clearInterval(time); };} 求解
2014-10-05 回復(fù) 有任何疑惑可以回復(fù)我~
#2

Sunshine518

是不是因?yàn)?定時(shí)器需要30ms的時(shí)間來反應(yīng),而人為滾動(dòng)鼠標(biāo)是一系列的動(dòng)作,定時(shí)器還來不及把isTop設(shè)置為true,onscroll就已經(jīng)連續(xù)觸發(fā)了
2014-10-05 回復(fù) 有任何疑惑可以回復(fù)我~

我不同意一樓的答案,因?yàn)閣indow.scroll是連續(xù)執(zhí)行多次的

測(cè)試方法:

54d223e5000131f105000199.jpg

執(zhí)行效果就是:

每50ms執(zhí)行一次滾動(dòng),但是一滾動(dòng)就會(huì)停止,說明window.scroll是執(zhí)行多次的。

接下來分析代碼

54d224800001543905000355.jpg

實(shí)際的執(zhí)行順序:

1.執(zhí)行setInterval事件,由于有isTop=true,所以當(dāng)執(zhí)行下一次scroll的時(shí)候,isTop是ture

2.執(zhí)行onscroll,先執(zhí)行if(!isTop)判斷,然后在給isTop 賦值 false,重復(fù)執(zhí)行1

3.當(dāng)有人為滾動(dòng),重復(fù)執(zhí)行2,(此時(shí)因?yàn)閕sTop 賦值為false,故if(!isTop) 是,結(jié)果為真,即執(zhí)行clear操作),此時(shí)isTop 應(yīng)為false


證明:

54d226dc000143c402040098.jpg

執(zhí)行結(jié)果(我向下滾動(dòng),前面的4代表執(zhí)行了4次if判斷)

54d226dc000190fa00840023.jpg



3 回復(fù) 有任何疑惑可以回復(fù)我~
#1

YDJS

正解。不過感覺加這個(gè)效果沒啥用處。
2015-09-08 回復(fù) 有任何疑惑可以回復(fù)我~

下面的isTop=false;再將isTop置為false,這時(shí)候人為滾動(dòng)鼠標(biāo)和下面的定時(shí)器都同時(shí)還在運(yùn)行吧,為什么不是在這在之前定時(shí)器先把isTop置為true呢,怎么可以通過人為滾動(dòng)鼠標(biāo)就直接認(rèn)定isTop=false,而不用再經(jīng)過下面的定時(shí)器isTop=true,畢竟它是{ if (!isTop) { clearInterval(time); }; isTop= false; } ,而不是{ isTop= false; if (!isTop) { clearInterval(time); };} 求解

0 回復(fù) 有任何疑惑可以回復(fù)我~

意思就是只有當(dāng)滾動(dòng)條到達(dá)頂部的時(shí)候才取消定時(shí)器,取消定時(shí)器后就不會(huì)出現(xiàn)滑到中間強(qiáng)行向上的情況。這里的isTop=false 還有定時(shí)器里的isTop=true就是保證在沒滾動(dòng)到頂端前定時(shí)器不被取消,就是連續(xù)滾的意思。我也是初學(xué)者,說的比較啰嗦,不知道對(duì)不對(duì),希望相互學(xué)習(xí)

1 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
回到頂部效果
  • 參與學(xué)習(xí)       44202    人
  • 解答問題       212    個(gè)

回到頂部網(wǎng)站不可缺少的一部分,用JS實(shí)現(xiàn)炫酷拉風(fēng)的回到頂部效果

進(jìn)入課程
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)