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

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

為什么改成負(fù)的就能滾到頭

為什么改成負(fù)的就能滾到頭

正在回答

2 回答


終于有人回我了,解釋的非常清楚,非常感謝

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

回答這個問題前,先來看下為什么不改成負(fù)數(shù)就不行呢?

注意這句:var ispeed = Math.floor(osTop / 6);?

當(dāng)上面osTop的值小于6這個除數(shù)時,ispeed的值始終等于0(向下取整了),所以問題來了,當(dāng)ispeed的值不變時,osTop - ispeed 這個控制滾動條的值也就不變了,所以滾動條永遠(yuǎn)到不了頂。

實(shí)際中,當(dāng)osTop = 5 時,ispeed 為 0,下面兩句也始終為5:

document.documentElement.scrollTop = osTop - ispeed; // 兼容IE

document.body.scrollTop = osTop - ispeed; // 兼容FF、Chrome

所以滾動條一直停在距離頂部5px的地方。

OK,那為什么改成負(fù)數(shù)就行了呢?其實(shí)改負(fù)數(shù)的目的就是讓ispeed的值不為0.

實(shí)際中,當(dāng)osTop = 5(或小于5時),Math.floor(osTop / 6) 的值為 -1,這樣就使得 osTop + ispeed 的值始終能減小下去,直至到0.

這種用負(fù)數(shù)的方法不好理解,我是采用Math.ceil()這個方法(向上取整)實(shí)現(xiàn)的,代碼如下:

obtn.onclick = function(){

????// 定時器開啟

????timer = setInterval(function(){

????????// 獲取當(dāng)前滾動條距離頂部距離

????????var osTop = document.documentElement.scrollTop || document.body.scrollTop;

????????var ispeed = Math.ceil(osTop / 6);

????????document.documentElement.scrollTop = osTop - ispeed;

????????document.body.scrollTop = osTop - ispeed;

????????if(osTop == 0){

????????????clearInterval(timer);

????????}

????},30);

}


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

arlenhui

很棒,感謝
2015-05-10 回復(fù) 有任何疑惑可以回復(fù)我~
#2

yb2015

感謝細(xì)心的回答
2016-02-11 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

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

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

進(jìn)入課程

為什么改成負(fù)的就能滾到頭

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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