In JavaScript, gesturestart fires when multiple fingers contact the touch surface, starting a new gesture (MDN). It is a proprietary WebKit GestureEvent.
Register a listener with addEventListener. Check readiness and browser support before you rely on this event.
Use Touch Events. Works across many mobile browsers.
Count touches.touches.length >= 2 means a pinch can begin.
Then track move/end. Compute distance/angle yourself on touchmove.
Optional: also listen for gesturestart on Safari if you want WebKit extras.
Compatibility
Browser Support
gesturestart is Non-standard (MDN) — a proprietary WebKit event, not part of any specification. Feature-detect and prefer Touch/Pointer Events for portable apps.
✓ Non-standard · WebKit
Element gesturestart
WebKit GestureEvent when multi-touch begins — Safari/iOS focused.
WebKitNot cross-browser
Google ChromeSupported · Desktop & Mobile
Full support
Mozilla FirefoxSupported · Desktop & Mobile
Full support
Apple SafariSupported · macOS & iOS
Full support
Microsoft EdgeSupported · Chromium
Full support
Internet ExplorerNo native support · Use a polyfill
Polyfill
OperaSupported · Modern versions
Full support
Samsung InternetSupported · Android
Full support
Android WebViewSupported · Modern WebView
Full support
gesturestartNon-standard
Bottom line: Optional Safari enhancement only. Build pinch/zoom with Touch Events or Pointer Events first.
Frequently Asked Questions
A proprietary WebKit event fired when multiple fingers contact the touch surface, starting a new gesture. During the gesture, gesturechange may fire; when it ends, gestureend fires (MDN).
MDN marks Element gesturestart as Non-standard only — not Deprecated and not Experimental. Still avoid it as the primary API in cross-browser apps.
A GestureEvent (WebKit). It inherits from Event and exposes scale and rotation. At gesturestart, scale is typically 1.0 and rotation is typically 0.0.
It is WebKit-specific. Expect Safari / iOS WebKit. Chrome, Firefox, and Edge generally do not implement this event.
For portable pinch/zoom, prefer Touch Events or Pointer Events and start tracking when a second finger lands (for example touchstart with touches.length === 2). Feature-detect GestureEvent only as an optional Safari enhancement.
No. MDN: it fires when multiple fingers contact the surface. Single-finger taps use touch/pointer events instead.