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: Невозможно прочитать свойство 'scrollTop' из неопределенного при: 1: 18
(Pinterest и Instagram)
или же
Uncaught TypeError: $(...). ScrollTop не является функцией в: 1: 19
(Facebook)
Кто-нибудь знает, почему это происходит, и как мы можем это исправить? Я хотел бы знать.
Ура, Stackru!
1 ответ
Обычный 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>