Element: mouseenter Ereignis

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.

Das mouseenter Ereignis wird bei einem Element ausgelöst, wenn ein Zeigegerät (normalerweise eine Maus) zunächst so bewegt wird, dass sein Hotspot innerhalb des Elements liegt, bei dem das Ereignis ausgelöst wurde.

Beachten Sie, dass sich "in ein Element bewegen" auf die Position des Elements im DOM-Baum und nicht auf seine visuelle Position bezieht. Zum Beispiel, wenn ein Kindelement so positioniert ist, dass es sich außerhalb seines Elternteils befindet, wird das Bewegen in das Kindelement mouseenter beim Elternelement auslösen, obwohl der Zeiger immer noch außerhalb der Grenzen des Elternelements liegt.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.

js
addEventListener("mouseenter", (event) => {});

onmouseenter = (event) => {};

Ereignistyp

Ereigniseigenschaften

Diese Schnittstelle erbt auch Eigenschaften ihrer Eltern, UIEvent und Event.

MouseEvent.altKey Schreibgeschützt

Gibt true zurück, wenn die alt-Taste gedrückt war, als das Mausereignis ausgelöst wurde.

MouseEvent.button Schreibgeschützt

Die Zahl des gedrückten Knopfes (falls zutreffend), als das Mausereignis ausgelöst wurde.

MouseEvent.buttons Schreibgeschützt

Die gedrückten Tasten (falls vorhanden), als das Mausereignis ausgelöst wurde.

MouseEvent.clientX Schreibgeschützt

Die X-Koordinate des Mauszeigers in Ansichtsport-Koordinaten.

MouseEvent.clientY Schreibgeschützt

Die Y-Koordinate des Mauszeigers in Ansichtsport-Koordinaten.

MouseEvent.ctrlKey Schreibgeschützt

Gibt true zurück, wenn die control-Taste gedrückt war, als das Mausereignis ausgelöst wurde.

MouseEvent.layerX Nicht standardisiert Schreibgeschützt

Gibt die horizontale Koordinate des Ereignisses relativ zur aktuellen Ebene zurück.

MouseEvent.layerY Nicht standardisiert Schreibgeschützt

Gibt die vertikale Koordinate des Ereignisses relativ zur aktuellen Ebene zurück.

MouseEvent.metaKey Schreibgeschützt

Gibt true zurück, wenn die meta-Taste gedrückt war, als das Mausereignis ausgelöst wurde.

MouseEvent.movementX Schreibgeschützt

Die X-Koordinate des Mauszeigers relativ zur Position des letzten mousemove Ereignisses.

MouseEvent.movementY Schreibgeschützt

Die Y-Koordinate des Mauszeigers relativ zur Position des letzten mousemove Ereignisses.

MouseEvent.offsetX Schreibgeschützt

Die X-Koordinate des Mauszeigers relativ zur Position des Randbereichs des Zielknotens.

MouseEvent.offsetY Schreibgeschützt

Die Y-Koordinate des Mauszeigers relativ zur Position des Randbereichs des Zielknotens.

MouseEvent.pageX Schreibgeschützt

Die X-Koordinate des Mauszeigers relativ zum gesamten Dokument.

MouseEvent.pageY Schreibgeschützt

Die Y-Koordinate des Mauszeigers relativ zum gesamten Dokument.

MouseEvent.relatedTarget Schreibgeschützt

Das sekundäre Ziel für das Ereignis, falls vorhanden.

MouseEvent.screenX Schreibgeschützt

Die X-Koordinate des Mauszeigers in Bildschirm-Koordinaten.

MouseEvent.screenY Schreibgeschützt

Die Y-Koordinate des Mauszeigers in Bildschirm-Koordinaten.

MouseEvent.shiftKey Schreibgeschützt

Gibt true zurück, wenn die shift-Taste gedrückt war, als das Mausereignis ausgelöst wurde.

MouseEvent.mozInputSource Nicht standardisiert Schreibgeschützt

Der Typ des Geräts, das das Ereignis erzeugt hat (eines der MOZ_SOURCE_* Konstanten). Dies ermöglicht Ihnen zum Beispiel festzustellen, ob ein Mausereignis tatsächlich von einer Maus oder von einem Touch-Ereignis generiert wurde (was die Genauigkeit beeinflussen könnte, mit der Sie die dem Ereignis zugeordneten Koordinaten interpretieren).

MouseEvent.webkitForce Nicht standardisiert Schreibgeschützt

Die ausgeübte Druckmenge beim Klicken.

MouseEvent.x Schreibgeschützt

Alias für MouseEvent.clientX.

MouseEvent.y Schreibgeschützt

Alias für MouseEvent.clientY.

Verwendungshinweise

Obwohl mouseenter dem mouseover ähnlich ist, unterscheiden sie sich darin, dass mouseenter nicht bubbelt und es wird nicht an Nachkommen gesendet, wenn der Zeiger von einem Nachkommenelement in seinen eigenen physischen Raum bewegt wird. Abgesehen davon werden Enter- und Over-Ereignisse für dieselbe Situation gleichzeitig ausgelöst, wenn angemessen.

Verhalten von mouseenter-Ereignissen

Dies beschreibt die mouseenter-Ereignisse, die von jedem der vier konzentrischen divs ohne Polsterung oder Rand empfangen werden, sodass die Ereignisse alle gleichzeitig stattfinden: mouseenter Verhaltensdiagramm Ein mouseenter-Ereignis wird an jedes Element der Hierarchie gesendet, wenn sie betreten werden. Hier werden 4 Ereignisse an die vier Elemente der Hierarchie gesendet, wenn der Zeiger den Text erreicht.

Verhalten von mouseover-Ereignissen

mouseover Verhaltensdiagramm Ein einzelnes mouseover-Ereignis wird an das tiefste Element des DOM-Baums gesendet, dann steigt es die Hierarchie hinauf, bis es von einem Handler abgebrochen oder die Wurzel erreicht wird.

Bei tiefen Hierarchien kann die Anzahl der gesendeten mouseenter-Ereignisse ziemlich groß sein und erhebliche Leistungsprobleme verursachen. In solchen Fällen ist es besser, auf mouseover-Ereignisse zu hören.

In Kombination mit dem entsprechenden mouseleave (das ausgelöst wird, wenn die Maus den Inhaltsbereich des Elements verlässt), funktioniert das mouseenter-Ereignis sehr ähnlich wie die CSS :hover Pseudoklasse.

Beispiele

Die Dokumentation zu mouseover enthält ein Beispiel, das den Unterschied zwischen mouseover und mouseenter veranschaulicht.

mouseenter

Das folgende einfache Beispiel verwendet das mouseenter-Ereignis, um den Rahmen des div zu ändern, wenn die Maus den ihm zugewiesenen Bereich betritt. Dann wird ein Element zur Liste hinzugefügt mit der Nummer des mouseenter- oder mouseleave-Ereignisses.

HTML

html
<div id="mouseTarget">
  <ul id="unorderedList">
    <li>No events yet!</li>
  </ul>
</div>

CSS

Stilisiert das div, um es besser sichtbar zu machen.

css
#mouseTarget {
  box-sizing: border-box;
  width: 15rem;
  border: 1px solid #333;
}

JavaScript

js
let enterEventCount = 0;
let leaveEventCount = 0;
const mouseTarget = document.getElementById("mouseTarget");
const unorderedList = document.getElementById("unorderedList");

mouseTarget.addEventListener("mouseenter", (e) => {
  mouseTarget.style.border = "5px dotted orange";
  enterEventCount++;
  addListItem(`This is mouseenter event ${enterEventCount}.`);
});

mouseTarget.addEventListener("mouseleave", (e) => {
  mouseTarget.style.border = "1px solid #333";
  leaveEventCount++;
  addListItem(`This is mouseleave event ${leaveEventCount}.`);
});

function addListItem(text) {
  // Create a new text node using the supplied text
  const newTextNode = document.createTextNode(text);

  // Create a new li element
  const newListItem = document.createElement("li");

  // Add the text node to the li element
  newListItem.appendChild(newTextNode);

  // Add the newly created list item to list
  unorderedList.appendChild(newListItem);
}

Ergebnis

Spezifikationen

Specification
UI Events
# event-type-mouseenter
HTML
# handler-onmouseenter

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch