C3.28.1Gesture direction lockdesignresearch

After drag or scroll starts, direction lock snaps later input to the main axis

Aliases: directional lock · axis snap · scroll projection

What it is

Once a scroll or drag has a main axis, direction lock projects later travel onto that axis: a vertical list drops X, a horizontal gallery drops Y. The finger may still move diagonally; content follows only the main axis. The lock happens after the gesture has started. It is in-layer axis snapping, not choosing a layer in a nest.

Why it happens

Human paths are not geometric lines. Without projection, a vertical scroll wobbles sideways and a carousel rubs up and down. The lock splits two-dimensional velocity into a main-axis component and an orthogonal one, then zeros the orthogonal after lock. directionalLockEnabled on UIScrollView and the “axis lock” on many pagers are this projection. It changes how the already-winning recognizer consumes delta, not who won the onset. An unlocked canvas (a map) keeps two dimensions because no main axis exists.

Studying it

Have people drag a scrollable list at instructed angles. Compare orthogonal content offset, time, and “it drifted” ratings with lock on versus off. Factors include lock and list axis. Integrate orthogonal pixels; do not only score whether a page turned. Eye tracking is optional—the content path is enough.

Where it stops holding

Maps, drawing, and game sticks need two dimensions; a lock shears diagonal intent. Choosing a layer for a nested horizontal rail is a different classifier, even though it also looks at angle. The lock should clear on lift-off, or the next gesture inherits the wrong axis. Direction lock is not a velocity threshold: a slow diagonal is snapped too.

Applying it

  • Turn direction lock on for single-axis lists; leave it off for free canvases.
  • After lock, drop orthogonal travel; do not accumulate it into a second scroll.
  • Drag a vertical list at about 20°: content should be almost purely vertical; visible sideways motion means the lock did not take.

Related

  • Same group: C3.28.2 Direction lock removes diagonal drift from hand jitter · C3.28.3 Locking too early straightens intended diagonals · C3.28.4 The lock window is the angle of the first pixels of travel
  • Adjacent: C3.23 Nested scroll touch capture · C3.29 Gesture velocity thresholds
  • Search: directional lock · axis lock · scroll projection

Cards in the same group

Quick Actions

Share

Share this page

ios_share

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