ipad微信浏览器 代码框无法滑动#3613
以 https://cnb.cool/LiuXiaohan2026/c-homework/-/blob/main/20260407/vending.c 在微信浏览器ipad版本为例
在 ipad 半屏模式下,若代码框完全进入viewport 此时滑动无法翻动代码。
@CodeBuddy 你觉得这是怎么回事
CodeBuddy Code
@samsong(AcidBunny)
这个问题挺有意思的,我分析了一下可能的根因:
最可能的原因是 iOS WebKit 的触摸滚动机制差异:
缺少 -webkit-overflow-scrolling: touch — 代码框容器如果没有这个属性,iOS 上的滚动会变得「卡顿」甚至失效,尤其在半屏模式下更明显。
-webkit-overflow-scrolling: touch
touch-action 未正确设置 — 如果外层或代码框本身设置了 touch-action: none / manipulation 等值,会抑制原生滚动。
touch-action
touch-action: none
manipulation
JS 阻止了默认行为 — 代码框上如果监听了 touchstart/touchmove 并调用了 preventDefault(),滚动就会被吃掉。
touchstart
touchmove
preventDefault()
半屏模式触发了特殊的 viewport 行为 — iPad 分屏时 viewport 高度变化,可能导致某些基于高度计算的逻辑出问题(比如动态算 max-height 时溢出判断错误)。
建议排查方向:
需要我去仓库里翻一下代码框组件的实现吗?可以帮你定位具体是哪个地方的问题。
ipad 全屏也不行 @design(一𠂇尢㔫龙)
能给个图示吗,代码视图代码是全部展示的,是左右无法滑动么?
Codex
简单描述一下问题和重现方式
以 https://cnb.cool/LiuXiaohan2026/c-homework/-/blob/main/20260407/vending.c 在微信浏览器ipad版本为例
在 ipad 半屏模式下,若代码框完全进入viewport 此时滑动无法翻动代码。