2017-01-12 69 views
0

我發現一個(工作)腳本將由像素集數自動滾動網頁:jQuery scrollTop()通過增量自動滾動在一些網站上工作,但不是其他網站。爲什麼?

var y = $(window).scrollTop(); $("html, body").animate({ scrollTop: '+=291px'}, 300); 

此腳本適用於一些網站,而不是其他。例如,

該腳本適用於:Twitter.com,BBC.co.uk,Reddit.com

腳本不上不工作:Facebook.com,Instagram.com,Pinterest.com。 ..和顯示以下錯誤消息之一:

VM104:1 Uncaught TypeError: Cannot read property 'scrollTop' of undefined at :1:18

(Pinterest的&的Instagram)

Uncaught TypeError: $(...).scrollTop is not a function at :1:19

(Facebook)

有沒有人知道爲什麼會發生這種情況,以及我們如何解決它?我很想知道。

乾杯,StackOverflow!

+0

? – Kaddath

+0

這些網站不使用jQuery我相信 – Roljhon

+0

使用純JS和JS的純動畫,如果你想讓它在所有網站上都可以使用,那麼你可以檢查'jQuery'如果未定義或不需要 – Roljhon

回答

0

Plain JS? document.getElementsByTagName("body")[0].scrollTop = 0

還是你需要動畫?

編輯......

用 '腳本',你的意思是,當你在布勞爾控制檯鍵入動畫

function scrollToTop(){ 

    var scrollHeight = document.getElementsByTagName("body")[0].scrollHeight; 

function scrollToTop(){ 
 
var scrollAtATime = 10; 
 
var scrollHeight = document.getElementsByTagName("body")[0].scrollHeight; 
 
var t = window.setInterval(function(){ 
 

 
    document.getElementsByTagName("body")[0].scrollTop = scrollHeight; 
 

 
    scrollHeight-=scrollAtATime; 
 
    
 
    //Add Easing 
 
    scrollAtATime = scrollHeight/100; 
 

 
    if(Math.ceil(scrollHeight) <= 1) window.clearInterval(t); 
 
    
 
    },1); 
 
    
 
}
div{ 
 
    border:1px solid red; 
 
    height:2000px; 
 
}
<div> 
 

 
</div> 
 
<button onclick="javascript:scrollToTop()">Click to scroll</button>

+0

OP想要一個解決方法,你應該已經把這個在評論部分 – Roljhon

+1

這是一個解決方法....有些網站不使用jquery,爲什麼不是簡單的js? –

+0

會使動畫起作用嗎?從他的代碼基地?把動畫代碼以及 – Roljhon

相關問題