2017-01-12 10 views
0

私は、ピクセルのセット数でWebページを自動スクロールします(作業)スクリプトを見つけた:jQuery scrollTop()インクリメント別の自動スクロールは、一部のサイトでは機能しますが、他のサイトでは機能しません。どうして?

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

このスクリプトは、他のいくつかのサイト上で動作しますが、ありません。例えば、

スクリプトは上で動作します:Facebook.com、Instagram.com、Pinterest.com:Twitter.com、BBC.co.uk、Reddit.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)

誰に何が起こっているのか、私たちはそれをどう修正することができますか?私は知りたいです。

乾杯、スタックオーバーフロー!

+0

あなたはブラウワーコンソールでそれを入力すると、あなたは、どういう意味ですか? – Kaddath

+0

これらのサイトではjQueryを使用していません – Roljhon

+0

は純粋なJSと純粋なアニメーションをJSと共に使用しています。すべてのサイトで機能させたい場合は、未定義の場合は 'jQuery'を確認できます。 – Roljhon

答えて

0

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

またはアニメーションする必要がありますか? 'スクリプト' によって

EDIT ......

アニメーションで

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を使用していません。 –

+0

それはアニメーションを動作させるでしょうか?彼のコードからのベース?アニメーションコードも入れてください – Roljhon

関連する問題