刷新时应用于窗口的子元素的溢出位置

时间:2018-03-27 12:44:14

标签: javascript html css reactjs

我在React应用程序中有一个搜索结果页面,用户可以在其中选择过滤器,过滤器会更新URL的查询参数并导致在React中重新安装。我在多个浏览器中遇到的一个问题是,如果我的过滤器在溢出容器内,那么子溢出的位置将在重新安装时应用于窗口。这是一个例子:

  1. 在包含复选框的子div中滚动(让我们说在div的70%处)
  2. 点击复选框过滤器
  3. 组件将重新安装
  4. 无论以前设置主窗口滚动位置的位置,主窗口现在都向下滚动了70%。
  5. 我已经尝试了setting restoration to manual,但这没有做任何事情。我还尝试使用window.scrollY和类似函数手动抓取滚动位置,并将其恢复到该位置,但它返回子元素的滚动位置。

1 个答案:

答案 0 :(得分:1)

使用window.history.pushState可以在不强制重新渲染的情况下更新查询参数。