Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Window : méthode matchMedia()

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

La méthode matchMedia() de l'interface Window retourne un nouvel objet MediaQueryList qui peut ensuite être utilisé pour déterminer si le document correspond à la chaîne de caractères de la requête média, ainsi que pour surveiller le document afin de détecter quand il correspond (ou cesse de correspondre) à cette requête média.

Syntaxe

js
matchMedia(mediaQueryString)

Paramètres

mediaQueryString

Une chaîne de caractères définissant la requête média à analyser en un objet MediaQueryList.

Comme en CSS, toute fonctionnalité média doit être entourée de parenthèses dans l'expression. Par exemple : matchMedia("(width <= 600px)") ou matchMedia("(orientation: landscape)") fonctionnent, tandis que matchMedia("width < 600px") ou matchMedia("orientation: landscape") ne fonctionnent pas. Les mots-clés pour les types de média (all, print, screen) et les opérateurs logiques (and, or, not, only) n'ont pas besoin d'être entourés de parenthèses.

Valeur de retour

Un nouvel objet MediaQueryList pour la requête média. Utilisez les propriétés et les évènements de cet objet pour détecter les correspondances et surveiller les changements de ces correspondances au fil du temps.

Notes d'utilisation

Vous pouvez utiliser la requête média retournée pour effectuer des vérifications instantanées et basées sur des évènements afin de voir si le document correspond à la requête média.

Pour effectuer une vérification instantanée unique afin de voir si le document correspond à la requête média, regardez la valeur de la propriété matches, qui sera true si le document répond aux exigences de la requête média.

Si vous avez besoin de savoir en permanence si le document correspond ou non à la requête média, vous pouvez plutôt surveiller l'évènement change pour qu'il soit envoyé à l'objet. Il y a un bon exemple de cela dans l'article sur Window.devicePixelRatio.

Exemples

Cet exemple exécute la requête média (width <= 600px) et affiche la valeur de la propriété matches de l'objet MediaQueryList résultant dans un <span> ; en conséquence, la sortie indiquera "true" si la largeur de la fenêtre est inférieure ou égale à 600 pixels, et "false" si la fenêtre est plus large.

JavaScript

js
let mql = window.matchMedia("(width <= 600px)");

document.querySelector(".mq-value").innerText = mql.matches;

Le code JavaScript passe la requête media à matchMedia() pour la compiler, puis définit la propriété innerText du <span> sur la valeur de la propriété matches des résultats, afin d'indiquer si le document correspond ou non à la requête media au moment où la page a été chargée.

HTML

html
<span class="mq-value"></span>

Un simple <span> pour recevoir la sortie.

Résultat

Voir Tester les requêtes media par programme pour des exemples de code supplémentaires.

Spécifications

Specification
CSSOM View Module
# dom-window-matchmedia

Compatibilité des navigateurs

Voir aussi