The gesturechange event fires while fingers move during a WebKit multi-touch gesture. Learn scale / rotation, ongesturechange, gesturestart / gestureend, portable alternatives, and five try-it labs.
01
Kind
Instance event
02
Type
GestureEvent
03
When
Digits move mid-gesture
04
Handler
ongesturechange
05
Key fields
scale / rotation
06
Status
Non-standard
Fundamentals
Introduction
Pinch-to-zoom and two-finger rotate feel natural on phones. WebKit exposed that motion with a small family of events: gesturestart, gesturechange, and gestureend, using the GestureEvent interface.
gesturechange is the “while moving” update. Other browsers never standardized it. For production apps, treat it as an optional Safari path—not the only path.
💡
Beginner tip
On Chrome/Firefox desktop, these listeners often never run. Always feature-detect ("ongesturechange" in window or window.GestureEvent) and keep a Touch / Pointer fallback.
Concept
Understanding gesturechange
An instance event that answers: “Are the user’s fingers still moving during an active multi-touch gesture?”
Non-standard WebKit proprietary event (not in a public spec).
Fires when digits move after a gesture has started.
GestureEvent — exposes scale and rotation.
Handler — ongesturechange or addEventListener("gesturechange", ...).
Family — gesturestart → gesturechange* → gestureend.
Foundation
📝 Syntax
Use the event name with addEventListener, or set the handler property:
gesturechange is marked Non-standard on MDN. Logos use the shared browser-image-sprite.png sprite from this project. Expect WebKit/Safari paths only—always ship a Touch or Pointer fallback.
✓ Non-standard
Element gesturechange
Proprietary WebKit multi-touch gesture updates; not a portable primary API.
WebKitNot standardized
Google ChromeNo GestureEvent; use Touch/Pointer
No
Mozilla FirefoxNo GestureEvent; use Touch/Pointer
No
Apple SafariWebKit GestureEvent (esp. iOS)
WebKit
Microsoft EdgeNo GestureEvent; use Touch/Pointer
No
OperaNo GestureEvent; use Touch/Pointer
No
Internet ExplorerNo
No
gesturechangeNon-standard
Bottom line: Use GestureEvent only as an optional Safari enhancement; compute pinch with Touch/Pointer Events for everyone else.
Wrap Up
Conclusion
gesturechange is a Non-standard WebKit signal for mid-gesture pinch and rotate. Know scale and rotation, feature-detect carefully, and keep Touch / Pointer Events as your portable foundation.
It is a proprietary WebKit event fired when fingers move during a multi-touch gesture. It exposes GestureEvent.scale and GestureEvent.rotation. MDN marks it Non-standard.
MDN marks it Non-standard only on the Element gesturechange page — not Deprecated and not Experimental. Still avoid it as the primary API in cross-browser 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; <1 pinch out/zoom out; >1 spread/zoom in). rotation is degrees since the gesture began (positive = clockwise).
For portable pinch/zoom, prefer Touch Events or Pointer Events and compute distance yourself, or use wheel with ctrlKey where the platform emits it. 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.
Did you know?
MDN lists gesturechange under “Not part of any specification.” That is why libraries rarely depend on it alone—standards favor Touch Events and Pointer Events for multi-touch.