【发布时间】:2015-12-28 18:25:42
【问题描述】:
我一直在开发一个网站并利用相当不错的jQuery Sticky Kit 插件。它通过将position 属性切换为fixed 并在适当时返回来操作。在桌面上运行非常流畅,在移动设备上也可以接受。
或者至少以前是这样。 iOS 9 带来了一个新的行为:如果一个元素的 position 从 static/relative/absolute 更改为 fixed,而滚动动画正在进行,则该元素将变得不可见,直到滚动到达一站。奇怪的是,执行相反的更改(从fixed 到其他任何内容)都没有问题。
可以在the plugin's homepage 上找到一个工作示例。黑色导航栏(“示例参考”)应该是粘性的。最初它是位于页面中间的staticly。当您向下滚动时,它会变为 fixed 并且(在 iOS 9 中)会消失,直到滚动停止。在桌面浏览器和 iOS 8 中的行为是正确的。
我有点希望典型的 CSS 解决方法:强制 3D 转换、禁用背面可见性等、模糊专有属性……但似乎没有任何效果。
既然“可粘”元素正在工作,我们是否要完全忘记它?
【问题讨论】:
-
如果您正在为 iOS 开发,您应该使用更好的解决方案,CSS 中的
position: sticky,尽管在前缀后面。您可以将 jQuery 插件用于其他所有内容,并在支持它的情况下使用适用于 iOS 的原生 CSS 解决方案(7+,如果我没记错的话)。 -
嗯,我正在为一切开发,但这允许使用混合方法。谢谢!
-
经过几个小时的反复试验,我可以得出结论,iOS 中对粘性标题的支持非常好,但是当您使用粘性列时,一切都变得混乱了。还是有点太绿了。
标签: ios css css-position mobile-safari ios9