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