diff --git a/FORK.md b/FORK.md index 544ef5f5..09aad624 100644 --- a/FORK.md +++ b/FORK.md @@ -138,10 +138,17 @@ - Tab 切换动画保持原样(设置中已有开关可控制) - 涉及文件:`src/styles/mobile/global.scss` -### 11. 🔍 点击响应卡顿(暂调查) -**描述:** 移动端点击按钮有延迟感,点不上的问题。 +### 11. 🟢 小键盘点击卡顿(修正:范围非全局) +**描述:** 移动端点击按钮有延迟感。 -**初步判断:** 可能是接口响应慢导致,非前端交互延迟。等 #12 离线缓存方向明确后再评估。 +**真因(2026-05-02 定位):** **不是**全局点击/接口响应问题。诊断后确认仅小键盘有卡顿,其他按钮正常。根因是上游在 `.numpad-button` 上设了 `touch-action: none`(commit `e178a079` "code refactor" by MaysWind),与 F7 内部 tap 处理叠加后让 click 事件合成慢一拍。backspace(个人新增 `.numpad-backspace-button` 类)不受影响,刚好佐证范围。 + +**已完成:** +- `.numpad-button` 的 `touch-action: none` 改为 `touch-action: manipulation` +- `manipulation` 是 W3C 标准的"快速点击"值:禁双击缩放(消除老 300ms 延迟)但保留 click 事件正常合成 +- 涉及文件:`src/components/mobile/NumberPadSheet.vue` + +**附带认知:** 原 #11 假设是"全局点击响应慢"或"接口慢",与 #12 离线缓存挂钩调研。实际诊断后跟那两条都无关,纯 CSS `touch-action` 与框架 tap 处理叠加导致。该认知值得记录避免后续误诊路径。 --- @@ -173,5 +180,5 @@ | 8 | 点击时间默认日期 | 🟢 已完成 | | 9 | 分类默认展开 | 🟢 已完成 | | 10 | 全局动画加速 | 🟢 已完成 | -| 11 | 点击卡顿优化 | 🔍 暂调查 | +| 11 | 小键盘点击卡顿(touch-action 修复) | 🟢 已完成 | | 12 | 离线缓存 | ❌ 暂缓 | diff --git a/src/components/mobile/NumberPadSheet.vue b/src/components/mobile/NumberPadSheet.vue index 0e8b99bc..9aea7bea 100644 --- a/src/components/mobile/NumberPadSheet.vue +++ b/src/components/mobile/NumberPadSheet.vue @@ -531,7 +531,10 @@ watch(() => props.flipNegative, (newValue) => { align-items: center; box-sizing: border-box; user-select: none; - touch-action: none; + /* 上游设的 touch-action: none 在 F7 tap 处理下让 click 慢一拍(小键盘卡顿 + 的实际根因,不是网络/渲染)。改 manipulation:禁双击缩放 + 消除 300ms + 老延迟,但保留 click 正常合成。详见 FORK.md #11 */ + touch-action: manipulation; } .numpad-button-num {