jQuery scrollTop()通过增量自动滚动在某些网站上运行,但不在其他网站上运行。为什么?

时间:2017-01-12 19:15:51

标签: javascript jquery scrolltop scrollto autoscroll

我找到了一个(工作)脚本,它将按一定数量的像素自动滚动网页:

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未捕获的TypeError:无法读取属性' scrollTop'的   undefined at:1:18

(Pinterest& Instagram)

  

Uncaught TypeError:$(...)。scrollTop不是函数   :1:19

(Facebook)的

有没有人知道为什么会这样,以及我们如何解决它?我很想知道。

干杯,StackOverflow!

1 个答案:

答案 0 :(得分:0)

普通的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>