W3cubDocs

/Web APIs

PointerEvent: pointerType property

The pointerType read-only property of the PointerEvent interface indicates the device type (mouse, pen, or touch) that caused a given pointer event.

Value

The event's pointer type. The supported values are the following strings:

"mouse"

The event was generated by a mouse device.

"pen"

The event was generated by a pen or stylus device.

"touch"

The event was generated by a touch, such as a finger.

If the device type cannot be detected by the browser, the value can be an empty string (""). If the browser supports pointer device types other than those listed above, the value should be vendor-prefixed to avoid conflicting names for different types of devices.

Examples

This example illustrates using the value of the pointerType property to call the appropriate pointer type processing function.

js

targetElement.addEventListener(
  "pointerdown",
  (event) => {
    // Call the appropriate pointer type handler
    switch (event.pointerType) {
      case "mouse":
        process_pointer_mouse(event);
        break;
      case "pen":
        process_pointer_pen(event);
        break;
      case "touch":
        process_pointer_touch(event);
        break;
      default:
        console.log(`pointerType ${event.pointerType} is not supported`);
    }
  },
  false,
);

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
pointerType 55 12 59 11
10Returns an integer enumeration instead of a string.
42 13 55 55 79 42 13 6.0
fractional_coordinates
64movementX and movementY are not fractional, see Chromium bug 802067.
79movementX and movementY are not fractional, see Chromium bug 802067.
12–79Only clientX, clientY, pageX and pageY are fractional.
No
11Only clientX, clientY, pageX and pageY are fractional.
51movementX and movementY are not fractional, see Chromium bug 802067.
No
64movementX and movementY are not fractional, see Chromium bug 802067.
64movementX and movementY are not fractional, see Chromium bug 802067.
No
47movementX and movementY are not fractional, see Chromium bug 802067.
No
9.0movementX and movementY are not fractional, see Chromium bug 802067.

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType