疑难排查
iOS Safari 的怪癖、视频播放、全屏与键盘导航的修复办法。
iOS Safari
下拉刷新 / 橡皮筋回弹
Safari 的下拉刷新和弹性回弹会和竖向滑动手势打架。不要把 overscroll-behavior: none 加在 html, body 上,那会把正常的页面滚动也一起废掉。ReelPlayerOverlay、 LightboxOverlay 和 StoriesPlayerOverlay 会在各自的容器上处理好这件事。自定义布局请把它限定在自己的容器里:
css
SwipeToClose 向下滑动的边界情况。任何 direction="down" 的 SwipeToClose(Lightbox、Stories Player、自定义浮层)在 iOS Safari 上都会被抢先处理 —— 浏览器在包装层看到触摸事件之前,就已经从文档层级触发了下拉刷新。 浮层虽然锁住了 body 滚动,但根节点的竖向拖拽仍然归浏览器管。 只在浮层打开期间把 overscroll-behavior-y: contain 限定在 <html> 上,关闭时再还原:
tsx