Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Window: resize-Ereignis

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

Das resize-Ereignis wird ausgelöst, wenn sich die Größe der Dokumentansicht (des Fensters) geändert hat.

Dieses Ereignis kann nicht abgebrochen werden und durchläuft keine Bubbling-Phase.

In einigen älteren Browsern war es möglich, resize-Ereignishandler für jedes HTML-Element zu registrieren. Es ist weiterhin möglich, onresize-Attribute zu setzen (beachten Sie jedoch, dass dies gegebenenfalls andere mit onresize hinzugefügte Ereignis-Listener ersetzt) oder mit addEventListener() einen Handler für ein beliebiges Element festzulegen. Allerdings werden resize-Ereignisse nur auf dem window-Objekt ausgelöst (also dem Objekt, das document.defaultView zurückgibt). Nur Handler, die auf dem window-Objekt registriert sind, empfangen resize-Ereignisse.

Obwohl das resize-Ereignis heutzutage nur für das Fenster ausgelöst wird, können Sie mit der ResizeObserver-API Benachrichtigungen über Größenänderungen anderer Elemente erhalten.

Wenn das resize-Ereignis für Ihre Anwendung zu häufig ausgelöst wird, lesen Sie Optimizing window.onresize, um den Zeitpunkt der Ereignisauslösung zu steuern.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

js
addEventListener("resize", (event) => { })

Alternativ können Sie einen Wert der Ereignishandler-Eigenschaft der Schnittstelle zuweisen:

js
onresize = (event) => { }

Ereignistyp

Ein generisches Event.

Beispiele

Fenstergröße protokollieren

Das folgende Beispiel gibt die Fenstergröße bei jeder Größenänderung aus. Es verwendet die Ereignishandler-Eigenschaft onresize (beachten Sie jedoch, dass dies gegebenenfalls andere mit onresize hinzugefügte Ereignis-Listener ersetzt).

HTML

html
<p>Resize the browser window to fire the <code>resize</code> event.</p>
<p>Window height: <span id="height"></span></p>
<p>Window width: <span id="width"></span></p>

JavaScript

js
const heightOutput = document.querySelector("#height");
const widthOutput = document.querySelector("#width");

function reportWindowSize() {
  heightOutput.textContent = window.innerHeight;
  widthOutput.textContent = window.innerWidth;
}

window.onresize = reportWindowSize;

Ergebnis

Hinweis: Die Beispielausgabe befindet sich hier in einem <iframe>. Die angegebenen Werte für Breite und Höhe beziehen sich daher auf das <iframe> und nicht auf das Fenster, in dem sich diese Seite befindet. Insbesondere ist es schwierig, die Fenstergröße so zu ändern, dass sich die angegebene Höhe sichtbar verändert.

Der Effekt ist leichter zu erkennen, wenn Sie das Beispiel in einem eigenen Fenster anzeigen.

Verwendung von addEventListener()

Sie können den Ereignishandler mit der Methode addEventListener() einrichten:

js
window.addEventListener("resize", reportWindowSize);

Spezifikationen

Spezifikation
CSSOM View Module
# eventdef-window-resize

Browser-Kompatibilität