在顶部添加元素时保持滚动位置在 Firefox 中有效,但在 Chrome 中无效

2024-01-22

我有一个流星应用程序 https://wikimedia.meteorapp.com/ (源代码 https://github.com/mitar/mediawiki-stream),它有一个条目流,并且新条目不断添加到顶部。我试图做到这一点,以便如果用户向下滚动到特定条目,该条目应该保持可见,并且即使在顶部添加更多条目也不会移动。添加和删​​除条目使用 Velocity 进行动画处理。

I have 编写了执行此操作的代码 https://github.com/mitar/mediawiki-stream/blob/master/client/momentum.coffee,但它仅适用于 Firefox,而在 Chrome 中,随着更多条目的出现,它很快就会开始跳跃。这是为什么?我该如何解决它?


我要发布这个,因为我花了一段时间才弄清楚。对我来说,这与滚动锚定 https://wicg.github.io/ScrollAnchoring/默认引入的功能铬56.

The overflow-anchor财产使我们能够选择退出滚动锚定,这是一项浏览器功能,旨在允许内容加载到用户当前 DOM 位置上方,而无需在内容完全加载后更改用户的位置。Source https://css-tricks.com/almanac/properties/o/overflow-anchor

您可能想尝试设置overflow-anchor to none,选择退出滚动锚定功能:

body {
  overflow-anchor: none;
}

您可以在此处找到一个演示,展示了使用和不使用滚动锚定的差异。 https://codepen.io/chriscoyier/pen/oWgENp

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在顶部添加元素时保持滚动位置在 Firefox 中有效,但在 Chrome 中无效 的相关文章

随机推荐