我想检查页面在完成加载后是否滚动并且我正在使用此代码:
$(document).ready(function(){
alert($(window).scrollTop());
});
它在Firefox中运行良好,但总是在Chrome中返回0
。这是为什么?
答案 0 :(得分:4)
实际上,Firefox是domReady或window.onload上唯一不为$(window).scrollTop()返回0的浏览器。 Chrome,Safari和IE都返回0.在domReady中获取滚动条正确位置的唯一安全方法是,如上面的另一个答案中所述,在窗口的滚动事件上设置事件处理程序,如下所示:
$(document).ready(function(){
$(window).scroll(function() {
console.log($(window).scrollTop());
$(window).unbind('scroll');
});
});
答案 1 :(得分:2)
$(window).scrollTop()
将返回0
。
答案 2 :(得分:2)
一旦加载DOM,chrome就会恢复预刷新滚动位置。因此,在scroll事件而不是ready事件上获取scrollTop将起作用。
答案 3 :(得分:2)
我还遇到了scrollTop()
始终在Chrome中返回0的问题,无论我是在window
,document
还是'html,body'
上使用它。我终于发现css是问题所在:
html, body {
height: 100%;
overflow-x: hidden;
}
实际上,我并不确切知道原因,因为您可以删除部分代码,然后再次运行。奇怪但问题解决了;)
答案 4 :(得分:0)
在页面底部有一些文本和链接的页面中尝试以下代码。请记住有足够的文字或空白行,以便滚动页面,直到您看到我的按钮
$(document).ready(function () {
alert($(window).scrollTop()); // first load if you did not scroll = 0
$("#button").click(function () { alert($(window).scrollTop()); });
// hitting the button that is located on bottom of page
// - i had to scroll the page = xxx (68 in may case)
});
在你的情况下获得0是正常的,因为页面没有滚动,你的位置和页面顶部之间的偏移是0。
我试过Chrome,FF6,IE9。 我希望我能提供帮助。
答案 5 :(得分:0)
我遇到了同样的问题但是通过添加文档声明得到修复:
<!DOCTYPE html>