Touch: clientX property

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

The Touch.clientX read-only property returns the X coordinate of the touch point relative to the viewport, not including any scroll offset.

Value

A double floating point value representing the X coordinate of the touch point relative to the viewport, not including any scroll offset.

Examples

This example illustrates using the Touch object's Touch.clientX and Touch.clientY properties. The Touch.clientX property is the horizontal coordinate of a touch point relative to the browser's viewport excluding any scroll offset. The Touch.clientY property is the vertical coordinate of the touch point relative to the browser's viewport excluding any scroll offset.

In this example, we assume the user initiates a touch on an element with an id of source, moves within the element or out of the element and then releases contact with the surface. When the touchend event handler is invoked, the changes in the Touch.clientX and Touch.clientY coordinates, from the starting touch point to the ending touch point, are calculated.

js
// Register touchstart and touchend listeners for element 'source'
const src = document.getElementById("source");
let clientX;
let clientY;

src.addEventListener(
  "touchstart",
  (e) => {
    // Cache the client X/Y coordinates
    clientX = e.touches[0].clientX;
    clientY = e.touches[0].clientY;
  },
  false,
);

src.addEventListener(
  "touchend",
  (e) => {
    let deltaX;
    let deltaY;

    // Compute the change in X and Y coordinates.
    // The first touch point in the changedTouches
    // list is the touch point that was just removed from the surface.
    deltaX = e.changedTouches[0].clientX - clientX;
    deltaY = e.changedTouches[0].clientY - clientY;

    // Process the data…
  },
  false,
);

Specifications

Specification
Touch Events
# dom-touch-clientx

Browser compatibility

BCD tables only load in the browser