【问题标题】:Prevent Chrome from setting scrollbar position to last on history state change防止 Chrome 在历史状态更改时将滚动条位置设置为最后
【发布时间】:2011-08-31 08:17:43
【问题描述】:

我在最近的一个项目中使用https://github.com/browserstate/history.js 来管理 ajax 富网站中的状态更改。

Chrome 在状态更改事件后决定将滚动条重新定位到某个任意位置时会表现出非常烦人的行为。我在使用任何其他浏览器时都没有遇到过这个问题。

有人有什么建议吗?我会发布代码,但不确定哪些部分是相关的,我希望有一个明显的解决方案来解决这个问题。

【问题讨论】:

  • 您找到解决方案了吗?我有同样的问题,认为它可能与 popstate 事件有关

标签: html google-chrome history.js


【解决方案1】:

有一些明显的解决方法。如果这是您想要的,请滚动到顶部,或者向数据对象添加一个字段以存储滚动位置并自行恢复。如果是 Chrome 错误,请解决它;如果这是您不喜欢的功能,请解决它;如果你只需要用三行代码自己实现它,那就解决它。

【讨论】:

  • 问题在于 Chrome 在对 scrollTop 进行了其他调用后会出现此行为。我通过结合使用 hacky 绝对定位和 setTimeout 回调来“解决”它,使其看起来好像滚动条根本没有移动。
  • 奇怪。对不起,垃圾答案。
  • 不是垃圾答案,只是一个奇怪的问题。我将编写一些最小的 html 和 javascript 来演示这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-29
  • 1970-01-01
  • 2016-02-05
  • 2018-11-30
  • 2022-01-19
相关资源
最近更新 更多