MouseEvent
The MouseEvent
interface represents events that occur due to the user interacting with a pointing device (such as a mouse). Common events using this interface include click
, dblclick
, mouseup
, mousedown
.
MouseEvent
derives from UIEvent
, which in turn derives from Event
. Though the MouseEvent.initMouseEvent()
method is kept for backward compatibility, creating of a MouseEvent
object should be done using the MouseEvent()
constructor.
Several more specific events are based on MouseEvent
, including WheelEvent
and DragEvent
.
Constructor
MouseEvent()
-
Creates a
MouseEvent
object.
Properties
This interface also inherits properties of its parents, UIEvent
and Event
.
-
MouseEvent.altKey
Read only -
Returns
true
if the alt key was down when the mouse event was fired. -
MouseEvent.button
Read only -
The button number that was pressed (if applicable) when the mouse event was fired.
-
MouseEvent.buttons
Read only -
The buttons being depressed (if any) when the mouse event was fired.
-
MouseEvent.clientX
Read only -
The X coordinate of the mouse pointer in local (DOM content) coordinates.
-
MouseEvent.clientY
Read only -
The Y coordinate of the mouse pointer in local (DOM content) coordinates.
-
MouseEvent.ctrlKey
Read only -
Returns
true
if the control key was down when the mouse event was fired. -
MouseEvent.metaKey
Read only -
Returns
true
if the meta key was down when the mouse event was fired. -
MouseEvent.movementX
Read only -
The X coordinate of the mouse pointer relative to the position of the last
mousemove
event. -
MouseEvent.movementY
Read only -
The Y coordinate of the mouse pointer relative to the position of the last
mousemove
event. -
MouseEvent.offsetX
Read only -
The X coordinate of the mouse pointer relative to the position of the padding edge of the target node.
-
MouseEvent.offsetY
Read only -
The Y coordinate of the mouse pointer relative to the position of the padding edge of the target node.
-
MouseEvent.pageX
Read only -
The X coordinate of the mouse pointer relative to the whole document.
-
MouseEvent.pageY
Read only -
The Y coordinate of the mouse pointer relative to the whole document.
-
MouseEvent.region
Read only -
Returns the id of the hit region affected by the event. If no hit region is affected,
null
is returned. -
MouseEvent.relatedTarget
Read only -
The secondary target for the event, if there is one.
-
MouseEvent.screenX
Read only -
The X coordinate of the mouse pointer in global (screen) coordinates.
-
MouseEvent.screenY
Read only -
The Y coordinate of the mouse pointer in global (screen) coordinates.
-
MouseEvent.shiftKey
Read only -
Returns
true
if the shift key was down when the mouse event was fired. -
MouseEvent.which
Read only -
The button being pressed when the mouse event was fired.
-
MouseEvent.mozPressure
Read only -
The amount of pressure applied to a touch or tablet device when generating the event; this value ranges between
0.0
(minimum pressure) and1.0
(maximum pressure). Instead of using this deprecated (and non-standard) property, you should instead usePointerEvent
and look at itspressure
property. -
MouseEvent.mozInputSource
Read only -
The type of device that generated the event (one of the
MOZ_SOURCE_*
constants listed below). This lets you, for example, determine whether a mouse event was generated by an actual mouse or by a touch event (which might affect the degree of accuracy with which you interpret the coordinates associated with the event). -
MouseEvent.webkitForce
Read only -
The amount of pressure applied when clicking
-
MouseEvent.x
Read only -
Alias for
MouseEvent.clientX
. -
MouseEvent.y
Read only -
Alias for
MouseEvent.clientY
Constants
-
MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN
Read only -
Minimum force necessary for a normal click
-
MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN
Read only -
Minimum force necessary for a force click
Methods
This interface also inherits methods of its parents, UIEvent
and Event
.
MouseEvent.getModifierState()
-
Returns the current state of the specified modifier key. See
KeyboardEvent.getModifierState()
for details. -
MouseEvent.initMouseEvent()
-
Initializes the value of a
MouseEvent
created. If the event has already being dispatched, this method does nothing.
Example
This example demonstrates simulating a click (programmatically generating a click event) on a checkbox using DOM methods. Event state (canceled or not) is then determined with the return value of method EventTarget.dispatchEvent()
.
HTML
<p><label><input type="checkbox" id="checkbox"> Checked</label></p> <p><button id="button">Click me to send a MouseEvent to the checkbox</button></p>
JavaScript
function simulateClick() { // Get the element to send a click event const cb = document.getElementById("checkbox"); // Create a synthetic click MouseEvent let evt = new MouseEvent("click", { bubbles: true, cancelable: true, view: window }); // Send the event to the checkbox element cb.dispatchEvent(evt); } document.getElementById("button").addEventListener('click', simulateClick);
Result
Specifications
Specification |
---|
UI Events # interface-mouseevent |
CSSOM View Module (CSSOM View) # extensions-to-the-mouseevent-interface |
Pointer Lock 2.0 # extensions-to-the-mouseevent-interface |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
MouseEvent |
1 |
12 |
1 |
9 |
10.6 |
3.1 |
1 |
18 |
4 |
11 |
2 |
1.0 |
MouseEvent |
26 |
12 |
11 |
No |
15 |
7 |
≤37 |
26 |
14 |
14 |
7 |
1.5 |
altKey |
1 |
12 |
1.5 |
9 |
≤12.1 |
≤4 |
≤37 |
18 |
4 |
≤12.1 |
≤3 |
1.0 |
button |
1 |
12 |
1 |
9 |
10.6 |
3.1 |
≤37 |
18 |
4 |
11 |
2 |
1.0 |
buttons |
43 |
12 |
15
Resrictions apply depending on OS.
|
9 |
30 |
11.1 |
43 |
43 |
15 |
30 |
11.3 |
4.0 |
clientX |
1 |
12 |
1 |
9 |
10.6 |
3.1 |
≤37 |
18 |
4 |
11 |
2 |
1.0 |
clientY |
1 |
12 |
1.5 |
9 |
≤12.1 |
≤4 |
≤37 |
18 |
4 |
≤12.1 |
≤3 |
1.0 |
ctrlKey |
1 |
12 |
1.5 |
9 |
≤12.1 |
≤4 |
≤37 |
18 |
4 |
≤12.1 |
≤3 |
1.0 |
getModifierState |
47 |
12 |
15 |
9 |
34 |
12.1 |
47 |
47 |
15 |
34 |
12.2 |
5.0 |
initMouseEvent |
1 |
12 |
1.5 |
9 |
≤12.1 |
≤4 |
≤37 |
18 |
4 |
≤12.1 |
≤3 |
1.0 |
metaKey |
1 |
12 |
1.5 |
9 |
≤12.1 |
≤4 |
≤37 |
18 |
4 |
≤12.1 |
≤3 |
1.0 |
movementX |
37
22-37
|
13 |
41
1-41
|
No |
24
15-24
|
9
6-8
|
37
Yes-37
|
37
25-37
|
41
4-41
|
24
14-24
|
8
6-8
|
3.0
1.0-3.0
|
movementY |
37
22-37
|
13 |
41
1-41
|
No |
24
15-24
|
9
6-8
|
37
Yes-37
|
37
25-37
|
41
4-41
|
24
14-24
|
8
6-8
|
3.0
1.0-3.0
|
offsetX |
1 |
12 |
39 |
9 |
≤12.1 |
≤4 |
≤37 |
18 |
43 |
≤12.1 |
≤3 |
1.0 |
offsetY |
1 |
12 |
39 |
9 |
≤12.1 |
≤4 |
≤37 |
18 |
43 |
≤12.1 |
≤3 |
1.0 |
pageX |
1 |
12 |
1.5 |
9 |
≤12.1 |
≤4 |
≤37 |
18 |
4 |
≤12.1 |
≤3 |
1.0 |
pageY |
1 |
12 |
1.5 |
9 |
≤12.1 |
≤4 |
≤37 |
18 |
4 |
≤12.1 |
≤3 |
1.0 |
region |
51 |
79 |
30 |
No |
38 |
No |
No |
51 |
30 |
41 |
No |
No |
relatedTarget |
1 |
12 |
1.5 |
9 |
≤12.1 |
≤4 |
≤37 |
18 |
4 |
≤12.1 |
≤3 |
1.0 |
screenX |
1 |
12 |
1.5 |
9 |
≤12.1 |
≤4 |
≤37 |
18 |
4 |
≤12.1 |
≤3 |
1.0 |
screenY |
1 |
12 |
1.5 |
9 |
≤12.1 |
≤4 |
≤37 |
18 |
4 |
≤12.1 |
≤3 |
1.0 |
shiftKey |
1 |
12 |
1.5 |
9 |
≤12.1 |
≤4 |
≤37 |
18 |
4 |
≤12.1 |
≤3 |
1.0 |
x |
1 |
12 |
53 |
9 |
≤12.1 |
≤4 |
≤37 |
18 |
53 |
≤12.1 |
≤3 |
1.0 |
y |
1 |
12 |
53 |
9 |
≤12.1 |
≤4 |
≤37 |
18 |
53 |
≤12.1 |
≤3 |
1.0 |
See also
- Its direct parent,
UIEvent
. -
PointerEvent
: For advanced pointer events, including multi-touch
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent