深入解析 iOS 上 fixed 底栏与滚动容器的手势冲突:从 H5 修复到原生根治

深入解析 iOS 上 fixed 底栏与滚动容器的手势冲突:从 H5 修复到原生根治 在移动端 H5 开发中,我们时常遇到这样的场景:页面底部有一个固定定位(position: fixed)的按钮栏或底栏,上方是一个可滚动的长列表。在 iOS 设备上,当用户尝试从底部 fixed 区域起手向上滑动时,列表却纹丝不动,仿佛被“粘”住了。这个现象不是偶发 bug,而是 iOS 对fixed元素与内部滚动容器手势交互机制的“特性”所致。本文将深入剖析其背后的技术原理,并分享一种根治该问题的原生方案——通过关闭 WebView 的橡皮筋效果(overscroll)来彻底解决冲突。一、现象重现某 H5 页面采用了如下典型结构:divclass="fixed-footer"底部按钮