Element: wheel event
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Das wheel-Ereignis wird ausgelöst, wenn der Benutzer eine Radschaltfläche auf einem Zeigegerät (typischerweise einer Maus) dreht. Es wird auch für verwandte Geräte ausgelöst, die Radaktionen simulieren, wie Trackpads und Mauskugeln.
Dieses Ereignis ersetzt das nicht standardisierte, veraltete mousewheel Ereignis.
Verwechseln Sie das wheel-Ereignis nicht mit dem scroll Ereignis:
- Ein
wheel-Ereignis löst nicht unbedingt einscroll-Ereignis aus. Zum Beispiel kann das Element überhaupt nicht scrollbar sein. Zoomaktionen mit dem Rad oder Trackpad lösen ebenfallswheel-Ereignisse aus (mitctrlKeyauf true gesetzt). - Ein
scroll-Ereignis wird nicht unbedingt durch einwheel-Ereignis ausgelöst. Elemente können auch durch die Tastatur, das Ziehen eines Scrollbalkens oder durch JavaScript gescrollt werden. - Selbst wenn das
wheel-Ereignis ein Scrollen auslöst, spiegeln diedelta*-Werte imwheel-Ereignis nicht unbedingt die Scrollrichtung des Inhalts wider.
Verlassen Sie sich daher nicht auf die delta*-Eigenschaften des wheel-Ereignisses, um die Scrollrichtung zu erhalten. Stattdessen sollten Sie Wertänderungen von scrollLeft und scrollTop des Ziels im scroll-Ereignis erkennen.
Das wheel-Ereignis kann abgebrochen werden. In einigen Browsern ist nur das erste wheel-Ereignis in einer Sequenz abbrechbar, spätere Ereignisse sind nicht abbrechbar. Wenn das Ereignis abgebrochen wird, erfolgt kein Scrollen oder Zoomen. Dies kann Leistungsprobleme verursachen, da der Browser warten muss, bis jedes wheel-Ereignis verarbeitet ist, bevor der Inhalt tatsächlich gescrollt wird. Sie können dies vermeiden, indem Sie passive: true beim Aufruf von addEventListener() setzen, was den Browser dazu veranlassen kann, nicht-abbrechbare wheel-Ereignisse zu erzeugen.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.
addEventListener("wheel", (event) => { })
onwheel = (event) => { }
Ereignistyp
Ein WheelEvent. Erbt von MouseEvent, UIEvent und Event.
Ereigniseigenschaften
Diese Schnittstelle erbt Eigenschaften von ihren Vorfahren, MouseEvent, UIEvent und Event.
WheelEvent.deltaXSchreibgeschützt-
Gibt einen
doublezurück, der die horizontale Scrollmenge darstellt. WheelEvent.deltaYSchreibgeschützt-
Gibt einen
doublezurück, der die vertikale Scrollmenge darstellt. WheelEvent.deltaZSchreibgeschützt-
Gibt einen
doublezurück, der die Scrollmenge für die z-Achse darstellt. WheelEvent.deltaModeSchreibgeschützt-
Gibt einen
unsigned longzurück, der die Einheit derdelta*-Werte der Scrollmenge darstellt. Zulässige Werte sind:Konstante Wert Beschreibung WheelEvent.DOM_DELTA_PIXEL0x00Die delta*-Werte sind in Pixel angegeben.WheelEvent.DOM_DELTA_LINE0x01Die delta*-Werte sind in Zeilen angegeben. Jeder Mausklick scrollt eine Zeile des Inhalts, wobei die Methode zur Berechnung der Zeilenhöhe vom Browser abhängt.WheelEvent.DOM_DELTA_PAGE0x02Die delta*-Werte sind in Seiten angegeben. Jeder Mausklick scrollt eine Seite des Inhalts. WheelEvent.wheelDeltaSchreibgeschützt Veraltet-
Gibt einen ganzzahligen Wert (32-Bit) zurück, der die Distanz in Pixel darstellt.
WheelEvent.wheelDeltaXSchreibgeschützt Veraltet-
Gibt einen ganzzahligen Wert zurück, der die horizontale Scrollmenge darstellt.
WheelEvent.wheelDeltaYSchreibgeschützt Veraltet-
Gibt einen ganzzahligen Wert zurück, der die vertikale Scrollmenge darstellt.
Beispiele
>Skalierung eines Elements über das Rad
Dieses Beispiel zeigt, wie man ein Element mit dem Rad der Maus (oder einem anderen Zeigegerät) skaliert.
<div>Scale me with your mouse wheel.</div>
body {
min-height: 100vh;
margin: 0;
display: flex;
align-items: center;
justify-content: center;
}
div {
width: 105px;
height: 105px;
background: #ccddff;
padding: 5px;
}
function zoom(event) {
event.preventDefault();
scale += event.deltaY * -0.01;
// Restrict scale
scale = Math.min(Math.max(0.125, scale), 4);
// Apply scale transform
el.style.transform = `scale(${scale})`;
}
let scale = 1;
const el = document.querySelector("div");
el.onwheel = zoom;
addEventListener-Äquivalent
Der Ereignis-Handler kann auch über die addEventListener() Methode eingerichtet werden:
el.addEventListener("wheel", zoom, { passive: false });
Spezifikationen
| Specification |
|---|
| UI Events> # event-type-wheel> |
| HTML> # handler-onwheel> |
Browser-Kompatibilität
Loading…