david
(David Taylor)
17
这是因为 Chrome 和 Firefox 中的滚动锚定(Safari 即将推出)。此功能使浏览器将自身“锚定”到可见元素,从而在视口上方插入内容不会导致滚动位置发生变化。
Firefox 具有此功能的调试模式,可以通过访问 about:config 并切换 layout.css.scroll-anchoring.highlight 来启用。所以,是的,我们可以看到它通常会锚定在帖子流中的某个元素上:
但是,如果你在时间线折叠时向下滚动得太远,那么时间线就会被选作锚定点:
正如 @don 所说,这是因为 DOM 中元素的顺序与显示的顺序不同。似乎滚动锚定算法按顺序遍历 DOM,并选择它能找到的第一个完全在视口中的元素。因此,如果折叠的时间线在视图中,它将始终在帖子内容之前被选中。
更改顺序会有所帮助,但是的,我担心可能出现回归。另外,我想知道它是否出于某种原因(可能是屏幕阅读器?)是这样排列的。
最简单的解决方法是将时间线上的 overflow-anchor 设置为 none。这样,它就不会被选作锚定:
8 个赞