页面刷新时,Safari强制页面滚动位置顶部失败

时间:2017-06-02 07:24:47

标签: scroll mobile-safari page-refresh

我正在建立一个使用反应来实现的网站。首先,我们将页面滚动到底部或中间位置。然后我们点击iphone safari浏览器中的刷新按钮,页面奇怪地滚动到永久位置。我试图改变flex布局以浮动布局并添加pageshow事件侦听器以使用

设置scrollTop零
  

window.scrollTo(0,0)

。但页面仍停留在safari mobile的永久位置。

我猜问题是页面保存了最后一个视图的位置,但是当页面新鲜时,页面内容没有完全显示,然后页面只能滚动到永久位置。最后,其余部分页面显示出来。在页面滚动到永久位置之前,触发了pageshow事件。 除了window.scroll之外,如何强制页面在页面刷新时滚动到顶部?如何解决Safari浏览器的这种奇怪行为?

2 个答案:

答案 0 :(得分:1)

与您在ios Safari上使用react时存在相同的问题,我发现的唯一解决方法是在componentDidMount中使用setTimeout,但我真的不喜欢这种解决方案

componentDidMount() {
  setTimeout(() => {
        window.scrollTo(0, 0);
    }, 800); 
}

希望会有所帮助

答案 1 :(得分:0)

使用 window.scroll(0, 0) 而不是 window.scrollTo()