我正在建立一个使用react实现的网站。首先,我们将页面滚动到底部或中间位置。然后我们点击iphone safari浏览器中的刷新按钮,页面奇怪地滚动到永久位置。我试图改变flex布局浮动布局并添加pageshow事件侦听器以使用设置scrollTop零
window.scrollTo(0,0)
。但页面仍停留在safari mobile的永久位置。
我猜问题是页面保存了最后一个视图的位置,但是当页面新鲜时,页面的内容没有完全显示,然后页面只能滚动到永久位置。最后,页面的其余部分show out.Pageshow事件已在页面滚动到永久位置之前触发。除了window.scroll之外,如何强制页面在页面刷新时滚动到顶部?如何解决Safari浏览器的这种奇怪行为?
我和你在ios safari上使用react有同样的问题,我发现唯一固定的是在componentDidMount
中使用setTimeout,但我真的不喜欢这个解决方案
componentDidMount() {
setTimeout(() => {
window.scrollTo(0, 0);
}, 800);
}
希望它会有所帮助