Specifies whether and how a given region can be manipulated by the user (for instance, by panning or zooming).
This property is read/write.
touch-action: auto | none | [ [ [ pan-x || pan-y || pinch-zoom ? ] | manipulation ] || double-tap-zoom ? ]
One of the following values, a combination of the gesture values.
Initial value. Indicates the browser will determine the permitted touch behaviors for the element.
The element permits no default touch behaviors.
The element permits touch-driven panning on the horizontal axis. The touch pan is performed on the nearest ancestor with horizontally scrollable content.
The element permits touch-driven panning on the vertical axis. The touch pan is performed on the nearest ancestor with vertically scrollable content.
The element permits pinch-zooming. The pinch-zoom is performed on the nearest ancestor with zoomable content. For more information about specifying content as zoomable, see the -ms-content-zooming property.
The element permits touch-driven panning and pinch-zooming. This is the shorthand equivalent of "pan-x pan-y pinch-zoom".
The element permits cross-sliding along the horizontal axis.
The element permits cross-sliding along the vertical axis.
|Applies To||All elements|
- Pointer Events, Section 9.1
This property requires Windows 8 or later.
When a user touches an element, that element's touch-action property determines the default touch behaviors permitted for that contact, like panning or zooming.
The touch behavior is then performed on the nearest ancestor element that is capable of that behavior, unless an intermediate ancestor element specifies that the behavior is not permitted.
If a default touch behavior is not invoked, Document Object Model (DOM) events will be fired for that contact instead (see Gesture Events).
This property has no effect on mouse, keyboard, or touchpad interaction.
You might find the following example within a fingerpainting application to ensure that its canvas doesn't move when a user touches and manipulates it. When a user touches this canvas and moves his or her finger, no manipulation will occur. DOM events will be sent instead.
The following example builds a list that pans in the x-direction but allows dragging or rearranging if the user pulls an item in the y-direction (similar to the Windows 8 Start screen) When the user touches a listEntry and moves his or her finger in the x-direction, the list will pan. If the user instead moves his or her finger in the y-direction, no pan will occur. DOM events will be sent instead.
Starting with Windows 8.1, you can explicitly specify an element to have cross-slide behavior along a given axis using the cross-slide-x or cross-slide-y value. The following table lists various cross-slide touch-action value combinations and their behaviors.
|CSS Rule||Resulting behavior|
|touch-action: cross-slide-x pan-y;||The element cross-slides in the horizontal direction and pans vertically.|
|touch-action: cross-slide-x;||The element cross-slides in the horizontal direction and fires pointer events for touch interactions along the vertical axis.|
||Two mutually exclusive behaviors are specified for the same axis; the rule is ignored.|
- Pointer Events