C3.28.1Gesture direction lock设计研究

拖动或滚动开始后,方向锁定会把后续输入吸附到主轴方向

别名: 方向锁定 · 轴向吸附 · directional lock

概念解释

滚动或拖动一旦被判定了主轴,方向锁定(directional lock)就把后续位移投影到该轴:竖直列表丢掉 X,横向画廊丢掉 Y。手指仍可斜着走,内容只沿主轴跟。锁定发生在手势已经开始之后,是同一层内的轴向吸附,不是嵌套结构里选哪一层。

机制

人的轨迹不是几何直线。若不投影,竖直滚动会左右晃,横向轮播会上下蹭。锁定把二维速度拆成主轴分量与正交分量,正交分量在锁定后被置零。UIScrollView 的 directionalLockEnabled、许多分页器的“锁轴”都是这个投影。它改变的是已经认领的那只识别器如何消费位移,不改变谁赢了起始竞争。未锁定的画布(地图)则保留二维,因为主轴不存在。

怎么研究

让人沿指定角度拖动可滚列表,比较锁定开/关时内容的正交偏移、完成时间和主观“发飘”。自变量包括锁定与否、列表主轴。因变量要有正交像素积分,而不只是最终是否翻页。眼动不是必需——内容轨迹已经够用。

边界

地图、绘图、游戏摇杆需要二维,锁定会把斜向意图剪断。嵌套的横向轨选层是另一只分类器,虽然也看角度。锁定在抬手后应解除,否则下一次手势会继承错误主轴。方向锁不是速度阈值:慢速斜拖同样会被吸到轴上。

怎么落地

  • 单轴列表默认打开方向锁;自由画布默认关闭。
  • 锁定后把正交位移丢掉,不要把它累积成另一次滚动。
  • 斜向 20° 拖一条纵向列表:内容应几乎只竖着走;若明显横移,锁没生效。

延伸

  • 同组C3.28.2 方向锁定消除了手部自然抖动带来的斜向偏移 · C3.28.3 锁定时机过早会让用户意图的对角线拖动被强制拉直 · C3.28.4 方向锁定的判别窗口通常取起始若干像素位移的角度
  • 相邻C3.23 嵌套滚动的触点抢夺 · C3.29 手势的速度阈值
  • 站内检索directional lock · axis lock · scroll projection

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/C3.28.1