无论我更改 scroll-snap-type 还是 scroll-snap-align,Safari 都会丢失滚动位置并从第一个 scroll-snap 元素开始。这个问题可以在这里的滚动示例中轻松重现:https ://developer.mozilla.org/en-US/docs/Web/CSS/scroll-snap-type 。只需切换到 scroll-snap-type: 强制,滚动到第二个或第三个元素。然后切换到 scroll-snap-type: none 并再次返回到 scroll-snap-type: 强制。在所有浏览器中滚动位置保持不变,在 Safari 中它又从 0 开始。
为什么我需要这个?我正在使用改变 scrollTop 位置的滚动动画。在 Safari 中使用滚动捕捉时,动画不起作用,例如,当单击导航链接滚动到另一个部分时。所以我的想法是在使用导航链接时关闭滚动捕捉,并在完成后再次打开它。在所有浏览器中都可以正常工作,导致 Safari 中出现描述的问题。我也尝试更改滚动对齐对齐,但它是一样的。
有人遇到过同样的问题吗?您找到解决方法/解决方案了吗?