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 auf einem Element
ausgelöst, wenn ein Zeigegerät (normalerweise eine Maus) initial bewegt wird, sodass sein Hotspot innerhalb des Elements liegt, in dem das Ereignis ausgelöst wurde.
Beachten Sie, dass sich „in ein Element hineinbewegen“ 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 des übergeordneten Elements befindet, wird durch das Hineinbewegen in das Kindelement trotzdem ein mouseenter
-Ereignis auf dem übergeordneten Element ausgelöst, auch wenn sich der Zeiger immer noch außerhalb der Grenzen des übergeordneten Elements befindet.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener()
oder setzen Sie eine Event-Handler-Eigenschaft.
addEventListener("mouseenter", (event) => {});
onmouseenter = (event) => {};
Ereignistyp
Ein MouseEvent
. Erbt von UIEvent
und Event
.
Eigenschaften des Ereignisses
Diese Schnittstelle erbt auch Eigenschaften ihrer Eltern, UIEvent
und Event
.
MouseEvent.altKey
Schreibgeschützt-
Gibt
true
zurück, wenn die Taste alt gedrückt war, als das Mausereignis ausgelöst wurde. -
Die Nummer der Taste, die (falls zutreffend) gedrückt wurde, als das Mausereignis ausgelöst wurde.
-
Die Tasten, die (falls vorhanden) gedrückt wurden, als das Mausereignis ausgelöst wurde.
MouseEvent.clientX
Schreibgeschützt-
Die X-Koordinate des Mauszeigers in Viewport-Koordinaten.
MouseEvent.clientY
Schreibgeschützt-
Die Y-Koordinate des Mauszeigers in Viewport-Koordinaten.
MouseEvent.ctrlKey
Schreibgeschützt-
Gibt
true
zurück, wenn die Taste control 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 Taste meta 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 Außenrands des Zielknotens.
MouseEvent.offsetY
Schreibgeschützt-
Die Y-Koordinate des Mauszeigers relativ zur Position des Außenrands 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.
-
Das sekundäre Ziel des Ereignisses, falls vorhanden.
MouseEvent.screenX
Schreibgeschützt-
Die X-Koordinate des Mauszeigers in Bildschirmkoordinaten.
MouseEvent.screenY
Schreibgeschützt-
Die Y-Koordinate des Mauszeigers in Bildschirmkoordinaten.
MouseEvent.shiftKey
Schreibgeschützt-
Gibt
true
zurück, wenn die Taste shift gedrückt war, als das Mausereignis ausgelöst wurde. MouseEvent.mozInputSource
Nicht standardisiert Schreibgeschützt-
Der Typ des Geräts, das das Ereignis generiert hat (eine der
MOZ_SOURCE_*
-Konstanten). Damit können Sie zum Beispiel feststellen, ob ein Mausereignis von einer tatsächlichen Maus oder von einem Touch-Ereignis erzeugt wurde (was die Genauigkeit beeinflussen kann, mit der die Koordinaten des Ereignisses interpretiert werden). MouseEvent.webkitForce
Nicht standardisiert Schreibgeschützt-
Die aufgewendete Kraft beim Klicken.
MouseEvent.x
Schreibgeschützt-
Alias für
MouseEvent.clientX
. MouseEvent.y
Schreibgeschützt-
Alias für
MouseEvent.clientY
.
Hinweise zur Nutzung
Obwohl mouseenter
dem mouseover
ähnelt, unterscheidet es sich darin, dass es nicht bubbles und nicht an Nachkommen gesendet wird, wenn der Zeiger von einem physikalischen Bereich eines Nachkommen in seinen eigenen Bereich bewegt wird. Abgesehen davon werden mouseenter
- und mouseover
-Ereignisse für dieselbe Situation gleichzeitig ausgelöst, wenn dies zutrifft.
Verhalten von mouseenter
-Ereignissen
Dies beschreibt die mouseenter
-Ereignisse, die jede der vier konzentrischen div
-Elemente ohne Padding oder Rand erhalten, sodass die Ereignisse zur gleichen Zeit auftreten:
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
Ein einzelnes
mouseover
-Ereignis wird an das tiefste Element des DOM-Baums gesendet, dann wird es durch die Hierarchie nach oben weitergeleitet, bis es von einem Handler abgebrochen oder die Wurzel erreicht wird.
Bei tiefen Hierarchien können die gesendeten mouseenter
-Ereignisse recht zahlreich sein und erhebliche Leistungsprobleme verursachen. In solchen Fällen ist es besser, auf mouseover
-Ereignisse zu hören.
Zusammen mit dem entsprechenden mouseleave
(das ausgelöst wird, wenn die Maus den Inhaltsbereich des Elements verlässt), verhält sich das mouseenter
-Ereignis sehr ähnlich zur CSS-:hover
-Pseudoklasse.
Beispiele
Die Dokumentation zu mouseover
enthält ein Beispiel, das den Unterschied zwischen mouseover
und mouseenter
verdeutlicht.
mouseenter
Das folgende triviale Beispiel verwendet das mouseenter
-Ereignis, um den Rand der div
zu ändern, wenn der Mauszeiger in den zugewiesenen Bereich eintritt. Anschließend wird eine Liste mit der Nummer des mouseenter
- oder mouseleave
-Ereignisses ergänzt.
HTML
<div id="mouseTarget">
<ul id="unorderedList">
<li>No events yet!</li>
</ul>
</div>
CSS
Styling der div
, um sie sichtbar zu machen.
#mouseTarget {
box-sizing: border-box;
width: 15rem;
border: 1px solid #333;
}
JavaScript
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