{{APIRef("DOM Events")}}
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 {{event("click")}}, {{event("dblclick")}}, {{event("mouseup")}}, {{event("mousedown")}}.
MouseEvent
derives from {{domxref("UIEvent")}}, which in turn derives from {{domxref("Event")}}. Though the {{domxref("MouseEvent.initMouseEvent()")}} method is kept for backward compatibility, creating of a MouseEvent
object should be done using the {{domxref("MouseEvent.MouseEvent", "MouseEvent()")}} constructor.
Several more specific events derivate from MouseEvent
: {{domxref("WheelEvent")}} and {{domxref("DragEvent")}}.
Constructor
- {{domxref("MouseEvent.MouseEvent", "MouseEvent()")}}
- Creates a
MouseEvent
object.
Properties
This interface also inherits properties of its parents, {{domxref("UIEvent")}} and {{domxref("Event")}}.
- {{domxref("MouseEvent.altKey")}} {{readonlyinline}}
- Returns
true
if the alt key was down when the mouse event was fired. - {{domxref("MouseEvent.button")}} {{readonlyinline}}
- The button number that was pressed when the mouse event was fired.
- {{domxref("MouseEvent.buttons")}} {{readonlyinline}} {{gecko_minversion_inline("15.0")}}
-
The buttons being pressed when the mouse event was fired
- {{domxref("MouseEvent.clientX")}} {{readonlyinline}}
- The X coordinate of the mouse pointer in local (DOM content) coordinates.
- {{domxref("MouseEvent.clientY")}} {{readonlyinline}}
- The Y coordinate of the mouse pointer in local (DOM content) coordinates.
- {{domxref("MouseEvent.ctrlKey")}} {{readonlyinline}}
- Returns
true
if the control key was down when the mouse event was fired. - {{domxref("MouseEvent.metaKey")}} {{readonlyinline}}
- Returns
true
if the meta key was down when the mouse event was fired. - {{domxref("MouseEvent.movementX")}} {{readonlyinline}}
- The X coordinate of the mouse pointer relative to the position of the last {{event("mousemove")}} event.
- {{domxref("MouseEvent.movementY")}} {{readonlyinline}}
- The Y coordinate of the mouse pointer relative to the position of the last {{event("mousemove")}} event.
- {{domxref("MouseEvent.offsetX")}} {{readonlyinline}}{{experimental_inline}}
- The X coordinate of the mouse pointer relative to the position of the padding edge of the target node.
- {{domxref("MouseEvent.offsetY")}} {{readonlyinline}}{{experimental_inline}}
- The Y coordinate of the mouse pointer relative to the position of the padding edge of the target node.
- {{domxref("MouseEvent.pageX")}} {{readonlyinline}}{{experimental_inline}}
- The X coordinate of the mouse pointer relative to the whole document.
- {{domxref("MouseEvent.pageY")}} {{readonlyinline}}{{experimental_inline}}
- The Y coordinate of the mouse pointer relative to the whole document.
- {{domxref("MouseEvent.region")}} {{readonlyinline}}
- Returns the id of the hit region affected by the event. If no hit region is affected,
null
is returned. - {{domxref("MouseEvent.relatedTarget")}} {{readonlyinline}}
-
The secondary target for the event, if there is one.
- {{domxref("MouseEvent.screenX")}} {{readonlyinline}}
- The X coordinate of the mouse pointer in global (screen) coordinates.
- {{domxref("MouseEvent.screenY")}} {{readonlyinline}}
- The Y coordinate of the mouse pointer in global (screen) coordinates.
- {{domxref("MouseEvent.shiftKey")}} {{readonlyinline}}
- Returns
true
if the shift key was down when the mouse event was fired. - {{domxref("MouseEvent.which")}} {{non-standard_inline}} {{readonlyinline}}
- The button being pressed when the mouse event was fired.
- {{domxref("MouseEvent.mozPressure")}} {{non-standard_inline()}} {{readonlyinline}}
- 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). - {{domxref("MouseEvent.mozInputSource")}} {{non-standard_inline()}} {{readonlyinline}}
-
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). - {{domxref("MouseEvent.webkitForce")}} {{non-standard_inline()}} {{readonlyinline}}
- The amount of pressure applied when clicking
- {{domxref("MouseEvent.x")}} {{experimental_inline}}{{readonlyinline}}
- Alias for {{domxref("MouseEvent.clientX")}}.
- {{domxref("MouseEvent.y")}} {{experimental_inline}}{{readonlyinline}}
- Alias for {{domxref("MouseEvent.clientY")}}
Constants
- {{domxref("MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN")}} {{non-standard_inline}}{{readonlyinline}}
- Minimum force necessary for a normal click
- {{domxref("MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN")}} {{non-standard_inline}}{{readonlyinline}}
- Minimum force necessary for a force click
Methods
This interface also inherits methods of its parents, {{domxref("UIEvent")}} and {{domxref("Event")}}.
- {{domxref("MouseEvent.getModifierState()")}}
- Returns the current state of the specified modifier key. See the {{domxref("KeyboardEvent.getModifierState")}}() for details.
- {{domxref("MouseEvent.initMouseEvent()")}} {{deprecated_inline}}
- 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 (that is programmatically generating a click event) on a checkbox using DOM methods.
function simulateClick() { var evt = new MouseEvent("click", { bubbles: true, cancelable: true, view: window }); var cb = document.getElementById("checkbox"); //element to click on var canceled = !cb.dispatchEvent(evt); if(canceled) { // A handler called preventDefault alert("canceled"); } else { // None of the handlers called preventDefault alert("not canceled"); } } document.getElementById("button").addEventListener('click', simulateClick);
<p><label><input type="checkbox" id="checkbox"> Checked</label> <p><button id="button">Click me</button>
Click on the button to see how the sample works:
{{ EmbedLiveSample('Example', '', '', '') }}
Specifications
Specification | Status | Comment |
---|---|---|
{{SpecName("HTML WHATWG", "#dom-mouseevent-region", "MouseEvent.region")}} | {{Spec2('HTML WHATWG')}} | From {{SpecName('DOM3 Events')}}, added the region property. |
{{SpecName('Pointer Lock','#extensions-to-the-mouseevent-interface','MouseEvent')}} | {{Spec2('Pointer Lock')}} | From {{SpecName('DOM3 Events')}}, added movementX and movementY properties. |
{{SpecName('CSSOM View', '#extensions-to-the-mouseevent-interface', 'MouseEvent')}} | {{Spec2('CSSOM View')}} | From {{SpecName('DOM3 Events')}}, added offsetX and offsetY , pageX and pageY , x, and y properties. |
{{SpecName('DOM3 Events','#events-mouseevents','MouseEvent')}} | {{Spec2('DOM3 Events')}} | From {{SpecName('DOM2 Events')}}, added the MouseEvent() constructor, the getModifierState() method and the buttons property. |
{{SpecName('DOM2 Events','#Events-MouseEvent','MouseEvent')}} | {{Spec2('DOM2 Events')}} | Initial definition. |
Browser compatibility
{{ CompatibilityTable() }}
Feature | Firefox (Gecko) | Edge | Chrome | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} |
{{domxref("MouseEvent.movementX","movementX")}} {{domxref("MouseEvent.movementY","movementY")}} |
{{CompatVersionUnknown()}} {{property_prefix("moz")}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{ CompatUnknown() }} | {{CompatVersionUnknown()}} | {{ CompatUnknown() }} |
{{ domxref("MouseEvent.buttons", "buttons") }} | {{ CompatVersionUnknown() }} | {{CompatVersionUnknown()}} | 43 | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{CompatNo}} |
{{ domxref("MouseEvent.which", "which") }} | 1.0 | {{CompatVersionUnknown()}} | 1.0 | 9.0 | 5.0 | 1.0 |
{{domxref("MouseEvent.getModifierState()", "getModifierState()")}} | {{CompatGeckoDesktop(15)}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} |
{{domxref("MouseEvent.mozPressure", "mozPressure")}} and {{domxref("MouseEvent.mozInputSource", "mozInputSource")}} {{non-standard_inline}} | {{CompatGeckoDesktop(2)}} | {{ CompatUnknown() }} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
{{domxref("MouseEvent.MouseEvent", "MouseEvent()")}} | {{CompatGeckoDesktop(11)}} | {{ CompatUnknown() }} | {{CompatVersionUnknown()}} | 9.0 | {{CompatVersionUnknown()}} | {{ CompatUnknown() }} |
{{domxref("MouseEvent.region")}} | {{CompatGeckoDesktop(32)}} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
{{domxref("MouseEvent.offsetX")}}, and {{domxref("MouseEvent.offsetY")}}{{experimental_inline}} | {{CompatGeckoDesktop(40)}} | 9 | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
Feature | Firefox Mobile (Gecko) | Android | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
See also
- Its direct parent, {{domxref("UIEvent")}}.