Element: mouseleave-Event
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Das mouseleave-Ereignis wird bei einem Element ausgelöst, wenn sich der Cursor eines Zeigegeräts (normalerweise eine Maus) aus diesem herausbewegt.
mouseleave und mouseout sind ähnlich, unterscheiden sich jedoch darin, dass mouseleave nicht blubbert, während mouseout dies tut. Das bedeutet, dass mouseleave ausgelöst wird, wenn der Zeiger das Element und alle seine Nachkommen verlassen hat, während mouseout ausgelöst wird, wenn der Zeiger das Element oder einen seiner Nachkommen verlässt, aufgrund des Bubbelns (auch wenn sich der Zeiger noch innerhalb des Elements befindet). Abgesehen davon werden Leave- und Out-Ereignisse für dieselbe Situation gleichzeitig ausgelöst, sofern dies angemessen ist.
Die mouseleave- und mouseout-Ereignisse werden nicht ausgelöst, wenn das Element ersetzt oder aus dem DOM entfernt wird.
Beachten Sie, dass sich "Verlassen eines Elements" auf die Position des Elements im DOM-Baum bezieht, nicht auf seine visuelle Position. Wenn zum Beispiel zwei Geschwisterelemente so positioniert sind, dass eines innerhalb des anderen platziert ist, wird beim Bewegen vom äußeren Element in das innere Element mouseleave auf dem äußeren Element ausgelöst, obwohl sich der Zeiger weiterhin innerhalb der Grenzen des äußeren Elements befindet.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Event-Handler-Eigenschaft.
addEventListener("mouseleave", (event) => { })
onmouseleave = (event) => { }
Ereignistyp
Ein MouseEvent. Erbt von UIEvent und Event.
Ereigniseigenschaften
Diese Schnittstelle erbt auch Eigenschaften von ihren Eltern, UIEvent und Event.
MouseEvent.altKeySchreibgeschützt-
Gibt
truezurück, wenn die alt-Taste gedrückt war, als das Mausereignis ausgelöst wurde. -
Die Tastennummer, die beim Auslösen des Mausereignisses gedrückt wurde (falls zutreffend).
-
Die gedrückten Tasten (falls vorhanden) beim Auslösen des Mausereignisses.
MouseEvent.clientXSchreibgeschützt-
Die X-Koordinate des Mauszeigers in Viewport-Koordinaten.
MouseEvent.clientYSchreibgeschützt-
Die Y-Koordinate des Mauszeigers in Viewport-Koordinaten.
MouseEvent.ctrlKeySchreibgeschützt-
Gibt
truezurück, wenn die Strg-Taste gedrückt war, als das Mausereignis ausgelöst wurde. MouseEvent.layerXNicht standardisiert Schreibgeschützt-
Gibt die horizontale Koordinate des Ereignisses relativ zur aktuellen Ebene zurück.
MouseEvent.layerYNicht standardisiert Schreibgeschützt-
Gibt die vertikale Koordinate des Ereignisses relativ zur aktuellen Ebene zurück.
MouseEvent.metaKeySchreibgeschützt-
Gibt
truezurück, wenn die Meta-Taste gedrückt war, als das Mausereignis ausgelöst wurde. MouseEvent.movementXSchreibgeschützt-
Die X-Koordinate des Mauszeigers relativ zur Position des letzten
mousemove-Ereignisses. MouseEvent.movementYSchreibgeschützt-
Die Y-Koordinate des Mauszeigers relativ zur Position des letzten
mousemove-Ereignisses. MouseEvent.offsetXSchreibgeschützt-
Die X-Koordinate des Mauszeigers relativ zur Position des Innenabstandsrandes des Zielknotens.
MouseEvent.offsetYSchreibgeschützt-
Die Y-Koordinate des Mauszeigers relativ zur Position des Innenabstandsrandes des Zielknotens.
MouseEvent.pageXSchreibgeschützt-
Die X-Koordinate des Mauszeigers relativ zum gesamten Dokument.
MouseEvent.pageYSchreibgeschützt-
Die Y-Koordinate des Mauszeigers relativ zum gesamten Dokument.
-
Das sekundäre Ziel des Ereignisses, falls vorhanden.
MouseEvent.screenXSchreibgeschützt-
Die X-Koordinate des Mauszeigers in Bildschirm-Koordinaten.
MouseEvent.screenYSchreibgeschützt-
Die Y-Koordinate des Mauszeigers in Bildschirm-Koordinaten.
MouseEvent.shiftKeySchreibgeschützt-
Gibt
truezurück, wenn die Umschalt-Taste gedrückt war, als das Mausereignis ausgelöst wurde. MouseEvent.mozInputSourceNicht standardisiert Schreibgeschützt-
Der Typ des Geräts, das das Ereignis erzeugt hat (eines der
MOZ_SOURCE_*-Konstanten). Dies ermöglicht Ihnen beispielsweise festzustellen, ob ein Mausereignis durch eine tatsächliche Maus oder durch ein Touch-Ereignis erzeugt wurde (was die Genauigkeit beeinflussen könnte, mit der Sie die mit dem Ereignis verbundenen Koordinaten interpretieren). MouseEvent.webkitForceNicht standardisiert Schreibgeschützt-
Die beim Klicken ausgeübte Druckmenge.
MouseEvent.xSchreibgeschützt-
Alias für
MouseEvent.clientX. MouseEvent.ySchreibgeschützt-
Alias für
MouseEvent.clientY.
Verhalten der mouseleave-Ereignisse

Ein mouseleave-Ereignis wird an jedes Element der Hierarchie gesendet, wenn es verlassen wird. Hier werden vier Ereignisse an die vier Elemente der Hierarchie gesendet, wenn der Zeiger sich von dem Text zu einem Bereich außerhalb des hier dargestellten äußersten div-Elements bewegt.
Verhalten der mouseout-Ereignisse

Ein einzelnes mouseout-Ereignis wird an das tiefste Element des DOM-Baums gesendet und blubbert dann die Hierarchie hoch, bis es durch einen Handler abgebrochen oder die Wurzel erreicht wird.
Beispiele
Die Dokumentation zu mouseout enthält ein Beispiel, das den Unterschied zwischen mouseout und mouseleave illustriert.
mouseleave
Das folgende triviale Beispiel verwendet das mouseenter-Ereignis, um die Grenze 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
Das <div> stylen, um es sichtbarer zu machen.
#mouseTarget {
box-sizing: border-box;
width: 15rem;
border: 1px solid #333333;
}
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 #333333";
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-mouseleave> |
| HTML> # handler-onmouseleave> |
Browser-Kompatibilität
Loading…