【发布时间】:2021-04-15 14:49:31
【问题描述】:
无论我更改 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 中出现描述的问题。我也尝试改变 scroll-snap-align ,但它是一样的。
有人遇到过同样的问题吗?您找到解决方法/解决方案了吗?
【问题讨论】:
-
这个问题在 iOS 15 中不会持续存在,但是对于 15 以下的版本肯定会有修复
标签: javascript safari scroll-snap