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>

Другие вопросы по тегам