Window: matchMedia() Methode
Die matchMedia()
Methode des Window
Interfaces
gibt ein neues MediaQueryList
Objekt zurück, das verwendet werden kann, um festzustellen, ob
das document
der Media-Query-Zeichenkette entspricht. Außerdem kann damit das Dokument überwacht werden, um festzustellen, wann es dieser Media-Query entspricht (oder nicht mehr entspricht).
Syntax
matchMedia(mediaQueryString)
Parameter
mediaQueryString
-
Ein String, der die Media-Query spezifiziert, die in eine
MediaQueryList
geparst wird.Genau wie in CSS muss jede Media-Funktion in der Expression in Klammern gesetzt werden. Zum Beispiel:
matchMedia("(max-width: 600px)")
funktioniert, währendmatchMedia("max-width: 600px")
nicht funktioniert. Schlüsselwörter für Medientypen (all
,print
,screen
) und logische Operatoren (and
,or
,not
,only
) müssen nicht in Klammern gesetzt werden.
Rückgabewert
Ein neues MediaQueryList
Objekt für die Media-Query. Verwenden Sie die Eigenschaften und Ereignisse dieses Objekts, um Übereinstimmungen zu erkennen und Änderungen dieser Übereinstimmungen über die Zeit zu überwachen.
Verwendungshinweise
Sie können die zurückgegebene Media-Query sowohl für sofortige als auch ereignisgesteuerte Überprüfungen verwenden, um zu sehen, ob das Dokument der Media-Query entspricht.
Um eine einmalige, sofortige Überprüfung durchzuführen, ob das Dokument der Media-Query entspricht, betrachten Sie den Wert der matches
Eigenschaft, die true
sein wird, wenn das Dokument die Anforderungen der Media-Query erfüllt.
Wenn Sie ständig informiert werden müssen, ob das Dokument der Media-Query entspricht oder nicht, können Sie stattdessen auf das change
Ereignis achten, das dem Objekt übermittelt wird. Es gibt ein gutes Beispiel dafür
im Artikel über Window.devicePixelRatio
.
Beispiele
Dieses Beispiel führt die Media-Query (max-width: 600px)
aus und zeigt den
Wert der matches
Eigenschaft des resultierenden MediaQueryList
in einem
<span>
an. Das Ergebnis wird "true" anzeigen, wenn das Ansichtsfenster
kleiner oder gleich 600 Pixel breit ist, und "false", wenn das Fenster breiter ist als das.
JavaScript
let mql = window.matchMedia("(max-width: 600px)");
document.querySelector(".mq-value").innerText = mql.matches;
Der JavaScript-Code übergibt die zu prüfende Media-Query an matchMedia()
, um sie zu kompilieren, und setzt dann die <span>
innerText
auf den Wert der matches
Eigenschaft des Ergebnisses, sodass deutlich wird, ob das Dokument momentan der Media-Query entspricht, als die Seite geladen wurde.
HTML
<span class="mq-value"></span>
Ein einfaches <span>
, um die Ausgabe zu erhalten.
Ergebnis
Siehe Media-Queries programmatisch testen für zusätzliche Code-Beispiele.