In JavaScript, the gesturechange event fires when digits move during a touch gesture (MDN). It is a proprietary WebKit event. The event object is a GestureEvent with scale and rotation.
Register a listener with addEventListener. Check readiness and browser support before you rely on this event.
Syntax
Listen for gesturechange. Start with this line.
JavaScript
el.addEventListener("gesturechange", fn)
Call
What it does
el.addEventListener("gesturechange", fn)
Primary signature.
Built into the browser. Listen with el.addEventListener("gesturechange", …) — no import required.
Library declarations
JavaScript
el.addEventListener("gesturechange", fn)
Parameters
Parameter
Description
WebKit / Safari
Required. Only engine that implements it
Multi-touch
Required. Needs two digits for pinch/rotate
GestureEvent
Required. Carries scale and rotation
Return Value
Return Value
Description
*
Fires as an Element event (listener receives the Event object).
JavaScript Examples
Example 1 — Feature Detect
Check WebKit gesture support before attaching listeners.
approx scale: 1.120
/* values appear while pinching on a touch device */
How It Works
Measure start distance. On two-finger touchstart, store the gap.
On touchmove. Divide current distance by start → approximate scale.
Works more widely. Touch Events are the portable path MDN-style apps need.
Optional Safari boost. You may still listen for gesturechange where available.
Compatibility
Browser Support
Elementgesturechange is Non-standard on MDN (WebKit proprietary). It is not Deprecated or Experimental. Not Baseline — Safari/iOS focused.
✓ Non-standard · WebKit
Element gesturechange
Fires while digits move in a multi-touch gesture. Exposes GestureEvent.scale and rotation.
WebKitSafari / related WebKit
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
gesturechangeNon-standard
Bottom line: Treat as Safari learning / optional enhancement. Ship Touch Events or Pointer Events for cross-browser pinch and rotate.
Frequently Asked Questions
It is a proprietary WebKit event fired when digits move during a touch gesture (MDN). The event object is a GestureEvent with scale and rotation. MDN marks it Non-standard.
MDN marks Element gesturechange as Non-standard only — not Deprecated and not Experimental. Still avoid it as the primary API in cross-browser production apps.
It is WebKit-specific. Expect Safari on iOS (and related WebKit contexts). Chrome, Firefox, and Edge generally do not implement this event.
scale is a multiplier of the initial finger distance (1.0 at start; below 1.0 = inward pinch/zoom out; above 1.0 = outward unpinch/zoom in). rotation is degrees since the gesture began (positive = clockwise) — MDN GestureEvent.
For portable pinch/zoom, prefer Touch Events or Pointer Events and compute distance yourself. Feature-detect GestureEvent only as an optional Safari enhancement.
gesturestart begins the gesture, gesturechange fires while digits move, and gestureend fires when the gesture finishes.