Element: mouseenter 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.
Das mouseenter
-Ereignis wird an einem Element
ausgelöst, wenn ein Zeigegerät (normalerweise eine Maus) so bewegt wird, dass ihr Hotspot innerhalb des Elements ist, bei dem das Ereignis ausgelöst wurde.
Beachten Sie, dass "in ein Element hineinbewegen" sich auf die Position des Elements im DOM-Baum und nicht auf seine visuelle Position bezieht. Wenn ein Kind-Element beispielsweise so positioniert ist, dass es außerhalb seines Elternelements platziert ist, löst das Hineinbewegen in das Kind-Element mouseenter
beim Elternelement aus, obwohl sich der Zeiger noch außerhalb der Grenzen des Elternelements 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
.
Ereigniseigenschaften
Dieses Interface erbt auch Eigenschaften seiner Eltern, UIEvent
und Event
.
MouseEvent.altKey
Nur lesbar-
Gibt
true
zurück, wenn die alt-Taste gedrückt war, als das Mausereignis ausgelöst wurde. -
Die Nummer der Taste, die gedrückt wurde (falls zutreffend), als das Mausereignis ausgelöst wurde.
-
Die Tasten, die gedrückt wurden (falls vorhanden), als das Mausereignis ausgelöst wurde.
MouseEvent.clientX
Nur lesbar-
Die X-Koordinate des Mauszeigers in Viewport-Koordinaten.
MouseEvent.clientY
Nur lesbar-
Die Y-Koordinate des Mauszeigers in Viewport-Koordinaten.
MouseEvent.ctrlKey
Nur lesbar-
Gibt
true
zurück, wenn die control-Taste gedrückt war, als das Mausereignis ausgelöst wurde. MouseEvent.layerX
Nicht standardisiert Nur lesbar-
Gibt die horizontale Koordinate des Ereignisses relativ zur aktuellen Ebene zurück.
MouseEvent.layerY
Nicht standardisiert Nur lesbar-
Gibt die vertikale Koordinate des Ereignisses relativ zur aktuellen Ebene zurück.
MouseEvent.metaKey
Nur lesbar-
Gibt
true
zurück, wenn die meta-Taste gedrückt war, als das Mausereignis ausgelöst wurde. MouseEvent.movementX
Nur lesbar-
Die X-Koordinate des Mauszeigers relativ zur Position des letzten
mousemove
Ereignisses. MouseEvent.movementY
Nur lesbar-
Die Y-Koordinate des Mauszeigers relativ zur Position des letzten
mousemove
Ereignisses. MouseEvent.offsetX
Nur lesbar-
Die X-Koordinate des Mauszeigers relativ zur Position des Randelements des Zielknotens.
MouseEvent.offsetY
Nur lesbar-
Die Y-Koordinate des Mauszeigers relativ zur Position des Randelements des Zielknotens.
MouseEvent.pageX
Nur lesbar-
Die X-Koordinate des Mauszeigers relativ zum gesamten Dokument.
MouseEvent.pageY
Nur lesbar-
Die Y-Koordinate des Mauszeigers relativ zum gesamten Dokument.
-
Das sekundäre Ziel des Ereignisses, falls vorhanden.
MouseEvent.screenX
Nur lesbar-
Die X-Koordinate des Mauszeigers in Bildschirmkoordinaten.
MouseEvent.screenY
Nur lesbar-
Die Y-Koordinate des Mauszeigers in Bildschirmkoordinaten.
MouseEvent.shiftKey
Nur lesbar-
Gibt
true
zurück, wenn die shift-Taste gedrückt war, als das Mausereignis ausgelöst wurde. MouseEvent.mozInputSource
Nicht standardisiert Nur lesbar-
Der Typ des Geräts, das das Ereignis generiert hat (einer der
MOZ_SOURCE_*
Konstanten). Dadurch können Sie beispielsweise bestimmen, ob ein Mausereignis von einer tatsächlichen Maus oder einem Touch-Ereignis generiert wurde (was die Genauigkeit beeinflussen kann, mit der Sie die zugehörigen Koordinaten interpretieren). MouseEvent.webkitForce
Nicht standardisiert Nur lesbar-
Der Druck, der beim Klicken ausgeübt wird.
MouseEvent.x
Nur lesbar-
Alias für
MouseEvent.clientX
. MouseEvent.y
Nur lesbar-
Alias für
MouseEvent.clientY
.
Nutzungshinweise
Verhalten von mouseenter
-Ereignissen
Ein mouseenter
-Ereignis wird an jedes Element der Hierarchie gesendet, wenn es betreten wird. 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 bubbelt es die Hierarchie hoch, bis es von einem Handler gestoppt wird oder die Wurzel erreicht.
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.
Kombiniert 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 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 nutzt das mouseenter
-Ereignis, um den Rahmen des div
zu ändern, wenn die Maus den dafür vorgesehenen Bereich betritt. Es fügt dann ein Element zur Liste mit der Nummer des mouseenter
- oder mouseleave
-Ereignisses hinzu.
HTML
<div id="mouseTarget">
<ul id="unorderedList">
<li>No events yet!</li>
</ul>
</div>
CSS
Stil des div
, um es sichtbarer 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 Standard # handler-onmouseenter |
Browser-Kompatibilität
BCD tables only load in the browser