From 75b4d78d783f0fa7b23a553783216befa4e85a88 Mon Sep 17 00:00:00 2001 From: Zhengchen Tao Date: Sat, 2 May 2026 18:09:40 +0800 Subject: [PATCH] =?UTF-8?q?fix(numpad):=20=E4=BF=AE=E5=B0=8F=E9=94=AE?= =?UTF-8?q?=E7=9B=98=E7=82=B9=E5=87=BB=E5=8D=A1=E9=A1=BF=EF=BC=8Ctouch-act?= =?UTF-8?q?ion:=20none=20=E2=86=92=20manipulation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 诊断:用户反馈仅小键盘点击有延迟感,其他按钮正常。范围缩小后定位到 .numpad-button 上的 touch-action: none(上游 e178a079 引入)与 F7 内部 tap 事件处理叠加,让 click 事件合成慢一拍。backspace(自定义 .numpad-backspace-button 类)不受影响,刚好印证范围。 修复:改为 touch-action: manipulation(W3C 标准"快速点击"值),禁双 击缩放消除老 300ms 延迟,但保留 click 事件正常合成。 FORK.md #11 状态:🔍 调查中 → 🟢 已完成,附真因记录避免后续误诊。 Co-Authored-By: Claude Opus 4.7 (1M context) --- FORK.md | 15 +++++++++++---- src/components/mobile/NumberPadSheet.vue | 5 ++++- 2 files changed, 15 insertions(+), 5 deletions(-) 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 {