In JavaScript, the touchstart event fires when one or more touch points are placed on the touch surface (MDN)—the start of a gesture. The event object is a TouchEvent. Next usually comes touchmove, then touchend (or touchcancel).
Register a listener with addEventListener. Check readiness and browser support before you rely on this event.
Syntax
Listen for touchstart. Start with this line.
JavaScript
el.addEventListener("touchstart", fn)
Call
What it does
el.addEventListener("touchstart", fn)
Primary signature.
Built into the browser. Listen with el.addEventListener("touchstart", …) — no import required.
Library declarations
JavaScript
el.addEventListener("touchstart", fn)
Parameters
Parameter
Description
Event target
Required. Element (or ancestor) listening for the press
Start updates the count. On touchstart, event.touches.length is all current contacts.
End updates again. On touchend, the lifted point is gone from touches.
Cancel resets. On touchcancel, clear UI instead of treating it as a tap.
Multi-touch ready. The same pattern works when more than one finger is down.
Compatibility
Browser Support
touchstart is marked Limited availability on MDN (not Baseline). Touch Events are reliable on mobile browsers; many desktop browsers omit or limit them. Prefer Pointer Events for mouse + pen + touch together.
✓ Limited availability
Element touchstart
Fires when touch points land. Strong on mobile Chrome / Firefox / Safari iOS / Edge; desktop Safari often lacks Touch Events.
PartialNot Baseline
Google ChromeTouch-capable / mobile
Supported
Mozilla FirefoxMobile & touch-enabled
Supported
Apple SafariiOS yes · desktop often no
Partial
Microsoft EdgeTouch-capable / Chromium
Supported
OperaMobile / Chromium touch paths
Partial
Internet ExplorerUse Pointer Events instead
Unavailable
touchstartLimited
Bottom line: Use touchstart for Touch Events press handling on mobile. For unified input across devices, ship pointerdown with Pointer Events.
Frequently Asked Questions
It fires when one or more touch points are placed on the touch surface—the start of a touch gesture (MDN).
No. MDN does not mark Element touchstart as Deprecated, Experimental, or Non-standard. It has Limited availability (not Baseline), mainly because some desktop browsers omit or limit Touch Events.
A TouchEvent. Use changedTouches for the points that just went down; also inspect touches and targetTouches when needed.
No. Many desktop browsers hide or expose Touch Events in ways that make “has ontouchstart” a poor mobile detector. Prefer feature detection for the APIs you use, or Pointer Events for cross-device input.
touchstart is Touch Events only. pointerdown works for mouse, pen, and touch. For new cross-device UIs, prefer Pointer Events.
Usually touchmove while sliding, then touchend on lift—or touchcancel if the gesture is aborted.