Mouse eventsBaseline · Widely available
Mouse events, such as click, mousedown, or mousemove, fire when users interact with an input or pointing device such as a mouse, trackpad, or touchscreen.
Supported in all major browsers for at least 30 months — safe to use without fallbacks. Baseline since Jul 29, 2015. Widely available since Jan 29, 2018.
Browser support
DesktopChrome
1+Supportedsince Dec 11, 2008
Current: 155Edge
12+Supportedsince Jul 29, 2015
Current: 154Firefox
1+Supportedsince Nov 9, 2004
Current: 157Safari
1+Supportedsince Jun 23, 2003
Current: 27MobileChrome Android
18+Supportedsince Jun 27, 2012
Current: 155Firefox Android
4+Supportedsince Mar 29, 2011
Current: 157Safari iOS
1+Supportedsince Jun 29, 2007
Current: 27How to use
This feature is Baseline widely available — use it freely, no fallback needed.
Example
Full syntax and examples are on MDN: auxclick event.
Feature detection
JS · check before using
if ("MouseEvent" in globalThis) {
// MouseEvent is available
} else {
// load a polyfill or use a fallback
}Sub-features
Support for each part of the feature (38). The overall table above shows when the whole feature works.
| Sub-feature | Chrome | Edge | Firefox | Safari | Chrome Android | Firefox Android | Safari iOS |
|---|---|---|---|---|---|---|---|
| Element.auxclick_event | 55 | 79 | 53 | 18.2 | 55 | 53 | 18.2 |
| Element.click_event | 1 | 12 | 6 | 3 | 18 | 6 | 1 |
| Element.contextmenu_event | 1 | 12 | 6 | 3 | 18 | 6 | ✕ |
| Element.dblclick_event | 1 | 12 | 6 | 3 | 18 | 6 | 1 |
| Element.mousedown_event | 2 | 12 | 6 | 4 | 18 | 6 | 3.2 |
| Element.mouseenter_event | 30 | 12 | 10 | 7 | 30 | 10 | 7 |
| Element.mouseleave_event | 30 | 12 | 10 | 7 | 30 | 10 | 7 |
| Element.mousemove_event | 2 | 12 | 6 | 4 | 18 | 6 | 3.2 |
| Element.mouseout_event | 1 | 12 | 6 | 1 | 18 | 6 | 1 |
| Element.mouseover_event | 2 | 12 | 6 | 4 | 18 | 6 | 3.2 |
| Element.mouseup_event | 2 | 12 | 6 | 4 | 18 | 6 | 3.2 |
| HTMLElement.click | 9 | 12 | 3 | 6 | 18 | 4 | 6 |
| MouseEvent | 1 | 12 | 1 | 1 | 18 | 4 | 1 |
| MouseEvent.MouseEvent | 26 | 12 | 11 | 7 | 26 | 14 | 7 |
| MouseEvent.altKey | 1 | 12 | 1.5 | 1 | 18 | 4 | 1 |
| MouseEvent.button | 1 | 12 | 1 | 1 | 18 | 4 | 1 |
| MouseEvent.buttons | 43 | 12 | 15 | 11.1 | 43 | 15 | 11.3 |
| MouseEvent.clientX | 1 | 12 | 1 | 1 | 18 | 4 | 1 |
| MouseEvent.clientY | 1 | 12 | 1.5 | 1 | 18 | 4 | 1 |
| MouseEvent.ctrlKey | 1 | 12 | 1.5 | 1 | 18 | 4 | 1 |
Show 18 more
| Sub-feature | Chrome | Edge | Firefox | Safari | Chrome Android | Firefox Android | Safari iOS |
|---|---|---|---|---|---|---|---|
| MouseEvent.getModifierState | 47 | 12 | 15 | 12.1 | 47 | 15 | 12.2 |
| MouseEvent.metaKey | 1 | 12 | 1.5 | 1 | 18 | 4 | 1 |
| MouseEvent.movementX | 37 | 13 | 41 | 9 | 144 | 41 | 17 |
| MouseEvent.movementY | 37 | 13 | 41 | 9 | 144 | 41 | 17 |
| MouseEvent.offsetX | 1 | 12 | 39 | 1 | 18 | 43 | 1 |
| MouseEvent.offsetY | 1 | 12 | 39 | 1 | 18 | 43 | 1 |
| MouseEvent.pageX | 1 | 12 | 1.5 | 1 | 18 | 4 | 1 |
| MouseEvent.pageY | 1 | 12 | 1.5 | 1 | 18 | 4 | 1 |
| MouseEvent.relatedTarget | 1 | 12 | 1.5 | 1 | 18 | 4 | 1 |
| MouseEvent.screenX | 1 | 12 | 1.5 | 1 | 18 | 4 | 1 |
| MouseEvent.screenY | 1 | 12 | 1.5 | 1 | 18 | 4 | 1 |
| MouseEvent.shiftKey | 1 | 12 | 1.5 | 1 | 18 | 4 | 1 |
| MouseEvent.x | 1 | 12 | 53 | 3.1 | 18 | 53 | 2 |
| MouseEvent.y | 1 | 12 | 53 | 3.1 | 18 | 53 | 2 |
| UIEvent | 1 | 12 | 1 | 1 | 18 | 4 | 1 |
| UIEvent.UIEvent | 26 | 12 | 11 | 7 | 26 | 14 | 7 |
| UIEvent.detail | 1 | 12 | 1 | 1 | 18 | 4 | 1 |
| UIEvent.view | 1 | 12 | 1 | 1 | 18 | 4 | 1 |