我正在构建一个网站,使用div
发布。当我将页面滚动到位置X后刷新页面后,页面会加载并保持滚动位置在X。
如何强制页面在刷新时滚动到顶部?
我能想到的方法是,在
onLoad()
函数中运行一些JS或jQuery代码来设置页面滚动到顶部。但我不知道该怎么做。更好的选择是是否有某个属性或其他东西可以将页面加载为默认滚动位置(即在顶部),这将类似于页面加载,而不是页面刷新。
我正在构建一个网站,使用div
发布。当我将页面滚动到位置X后刷新页面后,页面会加载并保持滚动位置在X。
如何强制页面在刷新时滚动到顶部?
我能想到的方法是,在onLoad()
函数中运行一些JS或jQuery代码来设置页面滚动到顶部。但我不知道该怎么做。
更好的选择是是否有某个属性或其他东西可以将页面加载为默认滚动位置(即在顶部),这将类似于页面加载,而不是页面刷新。
$(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);
}
});
// 这将在页面结尾加上 #。这样它就始终会加载到顶部。
这里的答案(在$(document).ready
中滚动)如果页面中有视频,则无效。在这种情况下,页面将在触发此事件后滚动,覆盖我们的工作。
最佳答案应该是:
$(window).on('beforeunload', function(){
$(window).scrollTop(0);
});
html {
height: 100%;
overflow: hidden;
width: 100%;
}
body {
height: 100%;
overflow-x: hidden;
overflow-y: auto;
width: 100%;
}
.scrollTop(0)
)。 - Tigerrrrr<script>
$(window).on('beforeunload', function() {
$('body').hide();
$(window).scrollTop(0);
});
</script>
history.scrollRestoration = "manual";
$(window).on('beforeunload', function(){
$(window).scrollTop(0);
});
location.replace(location.href);
超级棒的答案是:
在你的 js 文件或 script 标签 的顶部添加以下内容:
document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
document.body.scrollTop = 0; // For Safari