在页面加载/刷新时使用scrollTop()获取Chrome中的当前滚动位置

Chr*_*ris 6 jquery google-chrome scrolltop

在Chrome中运行以下内容始终返回0:

$(window).on('load', function(){
     console.log($(window).scrollTop());
});
Run Code Online (Sandbox Code Playgroud)

通过控制台运行相同的命令:

$(window).scrollTop()
Run Code Online (Sandbox Code Playgroud)

返回正确的数字.(即:843)

StackOverflow上有很多关于这个问题的问题,但没有一个给我一个正确的工作答案或替代方案.我不知所措......

Dav*_*ing 9

scrollTop()返回的滚动条的当前垂直位置.通常在页面加载时,滚动条处于适当位置0.如果控制台打印出其他内容,那么您或浏览器必须在调用该函数之前向下滚动.

如果您正在使用命名锚点或从滚动位置刷新页面,则可以将处理程序绑定到仅在页面加载时触发一次的滚动事件:

$(window).on('scroll', function() {
    console.log( $(this).scrollTop() );
});
Run Code Online (Sandbox Code Playgroud)

  • 这就是为什么问题说页面加载/刷新.因为刷新后浏览器会保留其滚动位置,这正是我正在关注的内容. (2认同)