Chrome会记住滚动位置(Chrome remembers scroll position)

2019-09-01 05:12发布

我遇到这实际上是在Chrome浏览器中的“功能”的问题。 正如你们大多数人可能知道,Chrome会记住滚动位置,它返回,当你回来的页面。 我种有一个问题。

有什么办法来覆盖这一点没有用户干预?

男人

失败的试奏:

  • scrollTop的上的document.ready

Answer 1:

我已经在Chrome检查,效果不错。 有时候setTimeout不欺骗:)

<script type="text/javascript">
window.onload=function(){
    setTimeout(function(){
        scrollTo(0,-1);
    },0);
}
</script>


Answer 2:

在Chrome浏览器46+,自动滚动行为可以使用history.scrollRestoration被关闭:

if ('scrollRestoration' in history) {
  history.scrollRestoration = 'manual';
}

来源: https://developers.google.com/web/updates/2015/09/history-api-scroll-restoration



Answer 3:

x = 0;  //horizontal coord
y = document.height; //vertical coord
window.scroll(x,y);

一些JavaScript一样,很可能是能够被操纵,以停止自动滚动。

这取决于虽然,你快乐吗滚动来简单地设置为自动去顶,或者是你实际上是寻找拿页面最后滚动位置,被彻底关闭了浏览器的标准选项?

什么是您目前尝试使用scrollTop的()?



Answer 4:

我通过将滚动事件,然后复位滚动位置的第一次用户滚动解决了这个。 适用于对现场重载我。

是这样的:

var scrollResetOnce = false;
$(window).on("scroll", function() {
    if (scrollResetOnce) return;
    scrollResetOnce = true;
    scrollTo(0, -1);
});


Answer 5:

这里是能完成这一操作的清洁方式。

window.addEventListener('unload', function(e){
   document.body.style.display = 'none';
});

通过简单的身体显示设置为“无”,你不必担心它的浏览器被卸载和滚动条的位置将被自动重置为0之前滚动到页面顶部的闪光灯。



文章来源: Chrome remembers scroll position