fix(numpad): 修小键盘点击卡顿,touch-action: none → manipulation

诊断:用户反馈仅小键盘点击有延迟感,其他按钮正常。范围缩小后定位到
.numpad-button 上的 touch-action: none(上游 e178a079 引入)与 F7
内部 tap 事件处理叠加,让 click 事件合成慢一拍。backspace(自定义
.numpad-backspace-button 类)不受影响,刚好印证范围。

修复:改为 touch-action: manipulation(W3C 标准"快速点击"值),禁双
击缩放消除老 300ms 延迟,但保留 click 事件正常合成。

FORK.md #11 状态:🔍 调查中 → 🟢 已完成,附真因记录避免后续误诊。
This commit is contained in:
2026-05-02 18:09:40 +08:00
parent 29c164439c
commit 11da502f75
2 changed files with 15 additions and 5 deletions
+11 -4
View File
@@ -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 | 离线缓存 | ❌ 暂缓 |
+4 -1
View File
@@ -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 {