我试图强制页面在刷新时滚动到顶部,类似于
$(window).scrollTop(0);
但它似乎发生在自动向下滚动刷新之前。我的脚本运行,然后浏览器恢复其最后位置。
我在这样的几个地方运行代码
$(function(){
$(window).scrollTop(0);
});
$(window).scrollTop(0);
$(document).ready(function(){
$(window).scrollTop(0);
});
$(window).on('load',function(){
$(window).scrollTop(0);
});
同时发生同样的事情。我是否必须将此代码放在其他地方?将JS加载到HTML的特定部分?纯JS或jQuery还有什么可以帮助我解决这个问题吗?
@Edit
我尝试使用$(html, body).scrollTo(0)
并且无法使其正常工作
我试过没有jQuery而且没有发生任何事情
window.scrollTo(0,0)
我禁用了用Javascript编写的所有内容,只放了这段代码而没有任何反应。
@ EDIT2
之前我遇到过这个问题,我确定我已经解决了这个问题。这是setTimeout
,如@ raam86所示。问题是我在页面加载时做了一些数学运算,这必须在用户开始上下滚动之前完成
答案 0 :(得分:8)
正确答案是:
window.onbeforeunload = function () {
window.scrollTo(0,0);
};
因为Chrome和其他浏览器"记得"卸载之前的最后一个滚动位置,所以如果你在卸载页面之前将值设置为0,0它们将记住0,0并且不会滚动回到滚动条所在的位置:)
刚刚超过所有页面控制器,它们将在重新加载/刷新/其他时滚动到顶部
答案 1 :(得分:0)
尝试使用set timeout。
类似的东西:
var _TIMEOUT = 300
setTimeout(function(){$(window).scrollTo(0)},_TIMEOUT );
这有望在Chrome滚动后触发。如果它没有尝试摆弄超时