Element: mouseover event

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

The mouseover event is fired at an Element when a pointing device (such as a mouse or trackpad) is used to move the cursor onto the element or one of its child elements.

If the target element has child elements, mouseout and mouseover events fire as the mouse moves over the boundaries of these elements too, not just the target element itself. Usually, mouseenter and mouseleave events' behavior is more sensible, because they are not affected by moving into child elements.

Syntax

Use the event name in methods like addEventListener(), or set an event handler property.

js
addEventListener("mouseover", (event) => { })

onmouseover = (event) => { }

Event type

A MouseEvent. Inherits from UIEvent and Event.

Event UIEvent MouseEvent

Event 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 pressed (if any) when the mouse event was fired.

MouseEvent.clientX Read only

The X coordinate of the mouse pointer in viewport coordinates.

MouseEvent.clientY Read only

The Y coordinate of the mouse pointer in viewport coordinates.

MouseEvent.ctrlKey Read only

Returns true if the control key was down when the mouse event was fired.

MouseEvent.layerX Read only

Returns the horizontal coordinate of the event relative to the current layer.

MouseEvent.layerY Read only

Returns the vertical coordinate of the event relative to the current layer.

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.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 screen coordinates.

MouseEvent.screenY Read only

The Y coordinate of the mouse pointer in screen coordinates.

MouseEvent.shiftKey Read only

Returns true if the shift key was down when the mouse event was fired.

MouseEvent.mozInputSource Read only

The type of device that generated the event (one of the MOZ_SOURCE_* constants). 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.

Examples

The following example illustrates the difference between mouseover and mouseenter events.

HTML

html
<ul id="test">
  <li>item 1</li>
  <li>item 2</li>
  <li>item 3</li>
</ul>

JavaScript

js
const test = document.getElementById("test");

// This handler will be executed only once when the cursor
// moves over the unordered list
test.addEventListener("mouseenter", (event) => {
  // highlight the mouseenter target
  event.target.style.color = "purple";

  // reset the color after a short delay
  setTimeout(() => {
    event.target.style.color = "";
  }, 500);
});

// This handler will be executed every time the cursor
// is moved over a different list item
test.addEventListener("mouseover", (event) => {
  // highlight the mouseover target
  event.target.style.color = "orange";

  // reset the color after a short delay
  setTimeout(() => {
    event.target.style.color = "";
  }, 500);
});

Result

Specifications

Specification
UI Events
# event-type-mouseover
HTML
# handler-onmouseover

Browser compatibility

desktop mobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
mouseover event
Chrome – Full support
Chrome 2 (Release date: 2009-05-21)
footnote Full support
Edge – Full support
Edge 12 (Release date: 2015-07-29)
footnote Full support
Firefox – Full support
Firefox 6 (Release date: 2011-08-16)
footnote Full support
Opera – Full support
Opera 9.5 (Release date: 2008-06-12)
footnote Full support
Safari – Full support
Safari 4 (Release date: 2009-06-08)
footnote Full support
Chrome Android – Full support
Chrome Android 18 (Release date: 2012-06-27)
footnote Full support
Firefox for Android – Full support
Firefox for Android 6 (Release date: 2011-08-16)
footnote Full support
Opera Android – Full support
Opera Android 10.1 (Release date: 2010-11-09)
footnote Full support
Safari on iOS – Full support
Safari on iOS 3.2 (Release date: 2010-04-03)
footnote Full support
Samsung Internet – Full support
Samsung Internet 1 (Release date: 2013-04-27)
footnote Full support
WebView Android – Full support
WebView Android 4.4 (Release date: 2013-12-09)
footnote Full support
WebView on iOS – Full support
WebView on iOS 3.2 (Release date: 2010-04-03)
footnote Full support

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

See also