我遇到的问题实际上是Chrome上的“功能”。 正如大多数人可能知道的那样,只要您回到页面,Chrome就会记住它返回的滚动位置。我有点问题。
有没有办法在没有用户注意的情况下覆盖它?
米斯
试用失败:
答案 0 :(得分:53)
在Chrome 46+中,可以使用history.scrollRestoration关闭自动滚动行为:
if ('scrollRestoration' in history) {
history.scrollRestoration = 'manual';
}
来源:https://developers.google.com/web/updates/2015/09/history-api-scroll-restoration
答案 1 :(得分:10)
我检查过chrome,效果很好。有时setTimeout
会欺骗:)
<script type="text/javascript">
window.onload=function(){
setTimeout(function(){
scrollTo(0,-1);
},0);
}
</script>
答案 2 :(得分:0)
x = 0; //horizontal coord
y = document.height; //vertical coord
window.scroll(x,y);
这样的一些Javascript很可能被操纵以停止自动滚动。
但是,您是否满意,您是否乐意将滚动设置为自动转到顶部,或者您实际上是否正在寻找Chrome标准选项以将页面转到最后滚动位置,以便完全关闭?< / p>
您目前正在尝试使用scrollTop()?
答案 3 :(得分:0)
我通过附加滚动事件解决了这个问题,然后在用户第一次滚动时重置滚动位置。适用于我的现场重新加载。
看起来像这样:
var scrollResetOnce = false;
$(window).on("scroll", function() {
if (scrollResetOnce) return;
scrollResetOnce = true;
scrollTo(0, -1);
});
答案 4 :(得分:-2)
这是完成这项工作的一种简洁方法。
window.addEventListener('unload', function(e){
document.body.style.display = 'none';
});
只需将正文显示设置为“无”,您就不必担心浏览器在卸载之前滚动到页面顶部并且滚动位置将自动重置为0。