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