在窗口准备好并滚动后运行代码

时间:2012-10-25 07:59:26

标签: javascript jquery

我发现FF和Chrome(版本22.0.1229.94 m)之间存在差异。 FF是对的(我会说)。

当向下滚动页面并点击然后刷新它时,

的回调
$(window).ready(function(){
    console.log( $(document).scrollTop() );
});

控制台应该说在窗口准备好之后滚动了金额,但在Chrome中它总是0

如何在Chrome中显示获取scrollTop的数量?

2 个答案:

答案 0 :(得分:0)

正如评论中所说,Chrome加载页面,然后向下滚动。 因此,当触发jQuery事件时,滚动为0。 你可以这样做一些工作:

$(document).ready(function() {
    function getScroll() {
        var scroll = $(window).scrollTop();
        ...
    }
    getScroll();

    $(window).scroll(getScroll);
});​

因此,Chrome $(window).scroll();将在页面加载后立即触发。

编辑:在那里测试http://fiddle.jshell.net/azaret/Mt65R/show/light/

答案 1 :(得分:0)

问题是Chrome中的 document.ready()是在之前执行浏览器向下滚动到上一个点,这就是为什么你总是得到一个零值。这里提供了一个解决方案:Get vertical position of scrollbar for a webpage on pageload when the url contains an anchor