Window: matchMedia() Methode
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.
Die matchMedia()
Methode der Window
Schnittstelle
gibt ein neues MediaQueryList
Objekt zurück, das dann verwendet werden kann, um festzustellen, ob
das document
der Media Query Zeichenfolge entspricht, sowie um das Dokument zu überwachen, um festzustellen, wann es diese Media Query erfüllt (oder nicht mehr erfüllt).
Syntax
matchMedia(mediaQueryString)
Parameter
mediaQueryString
-
Ein String, der die zu analysierende Media Query in eine
MediaQueryList
angibt.Genau wie in CSS muss jedes Medienmerkmal in Klammern innerhalb des Ausdrucks geschrieben werden. Zum Beispiel:
matchMedia("(width <= 600px)")
odermatchMedia("(orientation: landscape)")
funktionieren, währendmatchMedia("width < 600px")
odermatchMedia("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 geschrieben werden.
Rückgabewert
Ein neues MediaQueryList
Objekt für die Media Query. Verwenden Sie die Eigenschaften und Events dieses Objekts, um Übereinstimmungen zu erkennen und um Änderungen an diesen Übereinstimmungen im Laufe der Zeit zu überwachen.
Hinweise zur Verwendung
Sie können die zurückgegebene Media Query verwenden, um sowohl sofortige als auch ereignisgesteuerte Prüfungen durchzuführen, um festzustellen, ob das Dokument der Media Query entspricht.
Um eine einmalige, sofortige Prüfung durchzuführen, ob das Dokument der Media Query
entspricht, sehen Sie sich den Wert der matches
Eigenschaft an, die true
ist, wenn das Dokument die Anforderungen der Media Query
erfüllt.
Wenn Sie ständig darüber informiert werden möchten, ob das Dokument der Media Query entspricht
oder nicht, können Sie stattdessen das change
Ereignis beobachten, das an das Objekt gesendet wird.
Es gibt ein gutes Beispiel dafür
im Artikel über Window.devicePixelRatio
.
Beispiele
Dieses Beispiel führt die Media Query (width <= 600px)
aus und zeigt den
Wert der resultierenden MediaQueryList
-Eigenschaft matches
in einem
<span>
; dementsprechend wird die Ausgabe "true" anzeigen, wenn der Viewport
600 Pixel breit oder weniger ist, und "false" anzeigen, wenn das Fenster breiter ist.
JavaScript
let mql = window.matchMedia("(width <= 600px)");
document.querySelector(".mq-value").innerText = mql.matches;
Der JavaScript-Code übergibt die zu analysierende Media Query an matchMedia()
, um sie zu kompilieren, und setzt dann den innerText
des <span>
auf den Wert der matches
-Eigenschaft der Ergebnisse, sodass angezeigt wird, ob das Dokument der Media Query zum Zeitpunkt des Seitenladevorgangs entspricht oder nicht.
HTML
<span class="mq-value"></span>
Ein einfaches <span>
, um die Ausgabe zu empfangen.
Ergebnis
Besuchen Sie Testing media queries programmatically für zusätzliche Codebeispiele.
Spezifikationen
Specification |
---|
CSSOM View Module> # dom-window-matchmedia> |
Browser-Kompatibilität
Loading…