MediaQueryList
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.
Ein MediaQueryList
Objekt speichert Informationen über eine auf ein Dokument angewendete Media-Abfrage und unterstützt sowohl das sofortige als auch das ereignisgesteuerte Abgleichen mit dem Zustand des Dokuments.
Sie können ein MediaQueryList
Objekt erstellen, indem Sie matchMedia()
auf dem window
Objekt aufrufen. Das resultierende Objekt sendet Benachrichtigungen an Listener, wenn sich der Status der Media Query ändert (d.h. wenn der Test der Media Query beginnt oder aufhört, true
zu ergeben).
Dies ist sehr nützlich für adaptives Design, da es möglich macht, ein Dokument zu beobachten, um zu erkennen, wann sich seine Media Queries ändern, anstatt die Werte regelmäßig abzufragen. Dadurch können Sie programmatisch Änderungen an einem Dokument basierend auf dem Status der Media Queries vornehmen.
Instanzeigenschaften
Das MediaQueryList
Interface erbt Eigenschaften von seinem übergeordneten Interface, EventTarget
.
Instanzmethoden
Das MediaQueryList
Interface erbt Methoden von seinem übergeordneten Interface, EventTarget
.
addListener()
Veraltet-
Fügt der
MediaQueryList
einen Callback hinzu, der aufgerufen wird, wann immer sich der Status der Media Query ändert—ob das Dokument die Media Queries in der Liste erfüllt oder nicht. Diese Methode existiert hauptsächlich für die Rückwärtskompatibilität; wenn möglich sollten Sie stattdessenaddEventListener()
nutzen, um auf daschange
Ereignis zu achten. removeListener()
Veraltet-
Entfernt den angegebenen Listener-Callback von den Aufrufen, die erfolgen, wenn die
MediaQueryList
ihren Status der Media Query ändert. Dies passiert jedes Mal, wenn das Dokument zwischen dem Erfüllen und Nicht-Erfüllen der Media Queries in derMediaQueryList
wechselt. Diese Methode wurde aus Gründen der Rückwärtskompatibilität beibehalten; wenn möglich sollten Sie in der RegelremoveEventListener()
verwenden, um Änderungsbenachrichtigungscallbacks zu entfernen (die zuvor mitaddEventListener()
hinzugefügt worden sein sollten).
Ereignisse
Die folgenden Ereignisse werden an MediaQueryList
Objekte gesendet:
change
-
Wird an die
MediaQueryList
gesendet, wenn sich das Ergebnis der Ausführung der Media Query gegen das Dokument ändert. Wenn die Media Query beispielsweise(width >= 400px)
lautet, wird daschange
-Ereignis jedes Mal ausgelöst, wenn sich die Breite des Ansichtsfensters des Dokuments so ändert, dass die Breite die Grenze von 400px in eine Richtung überschreitet.
Beispiele
Dieses Beispiel erstellt ein MediaQueryList
und richtet dann einen Listener ein, um zu erkennen, wann sich der Status der Media Query ändert. Dabei wird eine benutzerdefinierte Funktion aufgerufen, um das Erscheinungsbild der Seite zu ändern.
const para = document.querySelector("p");
const mql = window.matchMedia("(width <= 600px)");
function screenTest(e) {
if (e.matches) {
/* the viewport is 600 pixels wide or less */
para.textContent = "This is a narrow screen — less than 600px wide.";
document.body.style.backgroundColor = "red";
} else {
/* the viewport is more than 600 pixels wide */
para.textContent = "This is a wide screen — more than 600px wide.";
document.body.style.backgroundColor = "blue";
}
}
mql.addEventListener("change", screenTest);
Weitere Beispiele finden Sie auf den einzelnen Eigenschafts- und Methodenseiten.
Spezifikationen
Specification |
---|
CSSOM View Module> # the-mediaquerylist-interface> |
Browser-Kompatibilität
Loading…
Siehe auch
- Media queries
- Verwendung von Media Queries im Code
window.matchMedia()
MediaQueryListEvent
- Der Artikel
Window.devicePixelRatio
enthält ebenfalls ein nützliches Beispiel