Answers:
对于简单的普通 JavaScript实现:
window.onbeforeunload = function () {
window.scrollTo(0, 0);
}
Safari 11.0.3
我来说还可以,您使用的是哪一个?
return
什么?
document.querySelector('html').style.scrollBehavior = '';
可能也是必要的。如果将其设置为smooth
,则可能无法在页面重新加载之前到达顶部。
此处的答案不适用于Safari,document.ready,通常开得太早。
可以使用该beforeunload
事件来防止您形成某些行为setTimeout
$(window).on('beforeunload', function(){
$(window).scrollTop(0);
});
同样,最佳答案是:
window.onbeforeunload = function () {
window.scrollTo(0,0);
};
(对于非jQuery,如果要搜索JQ方法,请查找)
编辑:有点错误,它的“ onbeforunload” :) Chrome和其他浏览器“记住”卸载前的最后一个滚动位置,因此,如果将值设置为0,0就在页面卸载之前,它们将记住0,0并赢得了不会滚动回到滚动条所在的位置:)
document.documentElement.scrollTop
工作。我通常同时使用两者。
$(document).ready(function(){
$(window).scrollTop(0);
});
不适用于我,因为Google Chrome在页面加载完成后会向下滚动。我用的是
$(document).ready(function() {
var url = window.location.href;
console.log(url);
if( url.indexOf('#') < 0 ) {
window.location.replace(url + "#");
} else {
window.location.replace(url);
}
});
//这会加载页面末尾的#号。因此它将始终加载在顶部。
要重置窗口,请滚动回到顶部,$(window).scrollTop(0)
在beforeunload事件中可以找到窍门,但是,我在Chrome 80中进行了测试,重新加载后它将回到原来的位置。
为防止这种情况,请将设置history.scrollRestoration
为"manual"
。
//Reset scroll top
history.scrollRestoration = "manual";
$(window).on('beforeunload', function(){
$(window).scrollTop(0);
});