Window: matchMedia()-Methode
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.
Die Methode matchMedia() der Window-Schnittstelle gibt ein neues MediaQueryList-Objekt zurück. Mit diesem lässt sich feststellen, ob das document mit einem Media-Query-String übereinstimmt. Außerdem kann damit überwacht werden, wann das Dokument mit dem Media Query übereinstimmt oder nicht mehr übereinstimmt.
Syntax
matchMedia(mediaQueryString)
Parameter
mediaQueryString-
Ein String, der das Media Query angibt, das in eine
MediaQueryListumgewandelt werden soll.Wie in CSS muss jedes Media-Feature innerhalb des Ausdrucks in Klammern stehen. Beispielsweise funktionieren
matchMedia("(width <= 600px)")undmatchMedia("(orientation: landscape)"), währendmatchMedia("width < 600px")undmatchMedia("orientation: landscape")nicht funktionieren. Schlüsselwörter für Medientypen (all,print,screen) und logische Operatoren (and,or,not,only) müssen nicht in Klammern stehen.
Rückgabewert
Ein neues MediaQueryList-Objekt für das Media Query. Mit den Eigenschaften und Ereignissen dieses Objekts können Sie Übereinstimmungen erkennen und Änderungen daran im Zeitverlauf überwachen.
Verwendungshinweise
Mit dem zurückgegebenen Media Query können Sie sowohl einmalig als auch ereignisgesteuert prüfen, ob das Dokument damit übereinstimmt.
Für eine einmalige Prüfung sehen Sie sich den Wert der Eigenschaft matches an. Er ist true, wenn das Dokument die Anforderungen des Media Query erfüllt.
Wenn Sie fortlaufend darüber informiert werden möchten, ob das Dokument mit dem Media Query übereinstimmt, können Sie stattdessen das Ereignis change des Objekts überwachen. Ein anschauliches Beispiel dafür finden Sie im Artikel zu Window.devicePixelRatio.
Beispiele
Dieses Beispiel führt das Media Query (width <= 600px) aus und zeigt den Wert der Eigenschaft matches der resultierenden MediaQueryList in einem <span> an. Die Ausgabe lautet „true“, wenn der Viewport höchstens 600 Pixel breit ist, und „false“, wenn das Fenster breiter ist.
HTML
<span class="mq-value"></span>
Ein einfaches <span> für die Ausgabe.
JavaScript
let mql = window.matchMedia("(width <= 600px)");
document.querySelector(".mq-value").innerText = mql.matches;
Der JavaScript-Code übergibt das zu prüfende Media Query an matchMedia(), um es zu verarbeiten. Anschließend setzt er die Eigenschaft innerText des <span> auf den Wert der Eigenschaft matches des Ergebnisses. So wird angezeigt, ob das Dokument zum Zeitpunkt des Ladens der Seite mit dem Media Query übereinstimmt.
Ergebnis
Weitere Codebeispiele finden Sie unter Media Queries programmatisch testen.
Spezifikationen
| Spezifikation |
|---|
| CSSOM View Module> # dom-window-matchmedia> |