Chrome和safari/firefox之间的滚动行为差异

问题描述:

因此,我正在为我的应用程序构建一个呈现系统,该对象从集合中拉出对象,并在页面滚动时通过js模板运行em以创建更多的子项。本质上,它检测到容器底部何时到达并移除顶层行渲染元素,并将一行模板对象附加到容器底部,同样,但对于顶部滚动而言是相反的。Chrome和safari/firefox之间的滚动行为差异

功能本身不是问题。我已经在Chrome中使用了100%,但是这个问题从其他浏览器开始。在Chrome中,它就好像容器永远滚动一样,但在safari/firefox中,当滚动触及底部时,会显示新行,但滚动停留在底部,因此看起来最后一行不断被下一行代替行渲染。

我的问题是如何确定滚动操作的差异,以便我可以找出解决方案?

因此,发生的差异是Chrome有一个新功能,他们建立在称为滚动锚定。他们添加了它,所以新增的内容将不会搅乱页面。它恰好是我构建的渲染系统的一个缺失部分,它不仅仅在铬上丢失。我仿效它在我自己的代码中做了什么,现在它可以在所有其他浏览器上正常工作。

对于任何人都好奇,chrome有一个名为overflow-anchor的行为的css控件:auto或none;