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.scrollY
或window.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();