scrollTop始终返回0

我已经尝试使用scrollTop以及scrollTop(),它总是返回0.这怎么可能,我已经尝试过这样:

Template.myHome.events({ "click .examine": function(event){ event.preventDefault(); varPos = event.clientY; var yPos = document.body.scrollTop; console.log("Y coords: " + yPos); } }); 

以及在几个div内使用JQuery版本,包括body标签,再次给我0或null。

我只想要的是当用户向下滚动页面时获得在y轴上遍历的像素数。

根据实现,滚动文档的元素可以是

CSSOM View引入了document.scrollingElement (请参阅邮件线程 ),它返回相应的元素:

 document.scrollingElement.scrollTop; 

或者,您可以使用window.scrollYwindow.pageYOffset 。 它们是别名并返回相同的值,但后者具有更多的浏览器支持。

对于不支持上述任何内容的浏览器,您可以检查以下两种情况:

 document.documentElement.scrollTop; document.body.scrollTop; 
 var scrollTests = document.getElementById('scrollTests'); var tests = [ "document.body.scrollTop", "document.documentElement.scrollTop", "document.scrollingElement.scrollTop", "window.scrollY", "window.pageYOffset" ]; for(var i=0; i 
 #scrollTests { position: fixed; top: 0; } body:after { content: ''; display: block; height: 999999px; } 
 

这包括html和body元素,跨浏览器(在Chrome / Canary,FF,Edge,IE11上测试)

 function getScrollTop() { alert(Math.max(document.body.scrollTop,document.documentElement.scrollTop)); } 
 Bla 




Bla




Bla




Bla




 function topScrollFunction() { if (document.documentMode || /Edge/.test(navigator.userAgent)){ $('body').css('height', 'auto'); window.scrollTo(0,0); }else { window.scrollTo(0,0); } } 

尝试

  $("html, body").scrollTop();