其他
为触屏与指针设备设计手势交互(滑动/拖拽/长按等)时…
当产品输入方式是手势(触摸或指针)时,用来设计直觉、可发现且不会与滚动/系统手势冲突的交互。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 48/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 55/100 ×0.15
适用场景
为触屏与指针设备设计手势交互(滑动/拖拽通用
解决思路
- 按用途挑选核心手势:Tap 用于选择、激活、切换;Double tap 用于缩放、点赞/收藏;Long press 用于上下文菜单、进入排序模式、预览;Swipe 用于导航、关闭、露出操作;Pinch 用于缩放;Rotate 用于旋转内容(地图、图片);Drag 用于移动、排序、调整数值;Pull 用于刷新内容(pull-to-refresh)。
- 可发现性:把每个手势与可见的控件/可供性配对,让用户看得出可以操作。
- 可发现性:首次使用时给出视觉提示(hint),教会用户手势。
- 可发现性:始终提供非手势的替代方案(按钮或菜单)。
- 反馈:手势一开始就给出即时的视觉响应。
- 反馈:手势进行中显示进度指示。
- 反馈:提供阈值指示,如吸附点(snap points)、橡皮筋回弹(rubber-banding)。
- 反馈:手势完成后给出确认反馈。
- 阈值:设置手势激活前的最小移动距离(10-15px)。
- 阈值:为 flick/swipe 设置速度阈值。
- 阈值:做方向锁定(水平 vs 垂直)。
- 阈值:设置取消区(cancel zone),把手指移回起点即中止手势。
- 冲突消解:滚动 vs 滑动——在初始移动后做方向锁定来区分。
- 冲突消解:点击 vs 长按——用时间阈值区分(典型 500ms)。
- 冲突消解:捏合 vs 拖拽——用触摸点数量区分。
- 冲突消解:系统手势优先(如返回滑动、通知栏下拉),不要与之争抢。
- 无障碍:每个手势都必须有非手势的替代操作。
- 无障碍:支持 switch control 与 voice control。
- 无障碍:自定义手势要有文档说明。
- 无障碍:手势动画要尊重系统的 reduced-motion 偏好设置。
- 最佳实践:遵循平台惯例。
- 最佳实践:手势保持简单(一到两指)。
- 最佳实践:对破坏性的手势操作提供撤销。
- 最佳实践:用单手操作场景做测试。
- 最佳实践:不要要求用户精确计时。
适用边界 · 注意事项
- 当 iOS/Android 已有 OS 标准手势约定时,应改用 platform-conventions(ui-design),不要自造手势。
- 输入方式不是手势时(如精确表单录入、以键鼠为主的桌面密集操作)不适用。
- 不要设计需要精确计时、或与系统手势必然冲突的自定义手势。