Javascript scrollTop()在chrome中返回0

Javascript scrollTop()在chrome中返回0,javascript,jquery,google-chrome,Javascript,Jquery,Google Chrome,我想检查页面是否在加载完成后滚动,并且我正在使用以下代码: $(document).ready(function(){ alert($(window).scrollTop()); }); 它在Firefox中运行良好,但在Chrome中总是返回0。这是为什么?$(窗口)。当窗口不可滚动时,scrollTop()将返回0。在页面底部有一些文本和链接的页面中尝试以下代码。记住要有足够的文本或空行,以便滚动页面,直到可以看到“我的”按钮 $(document).ready(funct

我想检查页面是否在加载完成后滚动,并且我正在使用以下代码:

$(document).ready(function(){   
    alert($(window).scrollTop());
});

它在Firefox中运行良好,但在Chrome中总是返回
0
。这是为什么?

$(窗口)。当窗口不可滚动时,scrollTop()
将返回
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。
我希望我能有所帮助。

事实上,Firefox是唯一一款在domReady或window.onload上不返回0的浏览器。Chrome、Safari和IE都返回0。要在domReady上获得滚动条的正确位置,唯一安全的方法是,如上面的另一个答案所述,在窗口的滚动事件上设置事件处理程序,如下所示:

$(document).ready(function(){   
    $(window).scroll(function() {
        console.log($(window).scrollTop());
        $(window).unbind('scroll');
    });
});

加载DOM后,chrome将恢复预刷新滚动位置。因此,在scroll事件上获取scrollTop而不是ready事件将起作用。

我还有一个问题,即在Chrome中,
scrollTop()
始终返回0,无论我是在
窗口
、在
文档
上还是在
html,body'
上使用它。我最终发现css是个问题:

html, body {
    height: 100%;
    overflow-x: hidden;
}

事实上,我不知道确切的原因,因为你可以删除部分代码,然后它再次工作。奇怪但问题解决了;)

我也遇到了同样的问题,但通过添加文档声明得到了修复:

<!DOCTYPE html>


情况如何?你是否在检查访问者是否带着散列标签来到你的页面?或者您正在检查访客是否在文档加载完成之前滚动?或者两者兼而有之?我正在对刚刚滚动到视图中的元素运行动画。但是如果你向下滚动页面并点击刷新。重新加载的页面会自动滚动到上一个滚动点(预刷新),因此我想知道窗口的滚动位置,以确定页面上哪些元素已滚动到视图中,并启动动画单击#按钮以获取。scrollTop()不是问题。。如果你向下滚动页面并点击刷新。页面将从u滚动到的点加载(预刷新)。。这就是我想知道的位置。如果在FF中执行此操作,将输出corect值。在Chrome14.0中,它返回0。我真不明白为什么人们会否决你的答案。这确实有效。另外,我观察到Chrome将触发两次滚动事件。第一次是在正常页面加载时,第二次是在用户滚动到之前的位置时(例如,在点击F5重新加载页面后)。非常感谢!真奇怪!在Safari上工作过,但在chrome上没有,在我将其添加到css中后,这两种浏览器都可以工作!