其实在安卓机上fixed的适应性要远远比ios上好,真是接地气啊哈哈。之前第一次遇到这个问题的时候非常惊讶,那时候在用sui mobile的组件库,里面就有底部导航栏,用了fixed。但是随着屏幕向上滚动,超过一定距离,这个底部导航栏竟然也跟着上去了。并且在我的安卓机上是没多大影响,但是在ios上就这样了。不过我同事的安卓机竟然比在ios上还夸张。
什么原因导致的?
经过我多方调研,其实移动端在早些年以前已经兼容了fixed,但是为什么现在还会出现这样的问题?
原来是移动端上还存在一个Bug,就是如果一个元素的position是fixed,而这个元素内部的元素也设置了定位,而且不管是position是什么,都会导致fixed失效,尤其是ios上。
如何解决?
我现在只知道在移动端上用fixed,内部的元素就不要在定位了,这样可以完美地适应。但是如果内部也一定要用定位的话,一种方式是滑动事件用iscroll来实现,一种是实时监测屏幕位置进行及时定位,但貌似效果不好喔。
所以最好在移动端上设置fixed的元素内部就不要再定位了。
当然希望官方可以修复这个bug就最好了。