2017-01-12 15 views
0

Я нашел (рабочий) скрипт, который будет AutoScroll веб-страницы на заданное количество пикселей:jQuery scrollTop() autoscroll by increment работает на некоторых сайтах, но не на других. Зачем?

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)

Есть ли у кого-нибудь идеи, почему это происходит, и как мы можем это исправить? Мне бы очень хотелось узнать.

Cheers, StackOverflow!

+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, так почему бы не просто js? –

+0

будет делать анимацию? база из его кода? добавьте код анимации, а также – Roljhon