在 Chrome 中运行以下命令总是返回 0:
$(window).on('load', function(){
console.log($(window).scrollTop());
});
通过控制台运行相同的命令:
$(window).scrollTop()
确实返回正确的数字。(即:843)
StackOverflow 上有很多关于这个问题的问题,但没有一个给我一个正确的工作答案或替代方案。我很茫然...
在 Chrome 中运行以下命令总是返回 0:
$(window).on('load', function(){
console.log($(window).scrollTop());
});
通过控制台运行相同的命令:
$(window).scrollTop()
确实返回正确的数字。(即:843)
StackOverflow 上有很多关于这个问题的问题,但没有一个给我一个正确的工作答案或替代方案。我很茫然...
scrollTop()
返回滚动条的当前垂直位置。通常在页面加载时,滚动条位于 position 0
。如果控制台打印出其他内容,那么您或浏览器必须在调用该函数之前向下滚动。
如果您使用命名锚点或从滚动位置刷新页面,则可以将处理程序绑定到仅触发一次的滚动事件 - 在页面加载时:
$(window).on('scroll', function() {
console.log( $(this).scrollTop() );
});
获取当前滚动位置In page的方法有很多
首先获取pageYOffSet
let verticalScrollOffset = window.pageYOffset;
然后设置
window.scrollTo(0,verticalScrollOffset);
如果您需要两个侧面位置并设置然后
let scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;
let scrollTop = window.pageYOffset || document.documentElement.scrollTop;
window.scrollTo(scrollLeft,scrollTop);
使用ViewportScroller 单击此处了解更多
this.viewportScroller.scrollToPosition(this.viewportScroller.getScrollPosition());
//对我的情况没有帮助
理想的解决方案对我有用,我只是在加载页面之前保存 verticalScrollOffset(YaxisSrollPosition) 或在任何常量变量或本地存储中刷新。然后在刷新或加载页面后使用该位置
let verticalScrollOffset = window.pageYOffset || document.documentElement.scrollTop;
$("html, body").animate({ scrollTop: verticalScrollOffset }, "slow");//slow Or fast option