Окно: метод matchMedia()
Базовая Широко поддерживается
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Метод matchMedia() интерфейса Window возвращает новый объект MediaQueryList, который затем можно использовать для определения соответствия document строке справки по средствам массовой информации, а также для отслеживания документа, чтобы обнаружить, когда он соответствует (или перестает соответствовать) этой справке по средствам массовой информации.
Синтаксис
matchMedia(mediaQueryString)
Параметры
mediaQueryString-
Строка, определяющая справку по средствам массовой информации, которая должна быть обработана в
MediaQueryList.Как и в CSS, любой свойство среды должен быть заключён в скобки внутри выражения. Например:
matchMedia("(max-width: 600px)")работает, в то время какmatchMedia("max-width: 600px")— нет. Ключевые слова для типов сред (all,print,screen) и логических операторов (and,or,not,only) заключать в скобки не нужно.
Возвращаемое значение
Новый объект MediaQueryList для справки по средствам массовой информации. Используйте свойства и события этого объекта для определения соответствий и отслеживания изменений этих соответствий со временем.
Примечания по использованию
Вы можете использовать полученную справку по средствам массовой информации для выполнения как мгновенных, так и управляемых событиями проверок соответствия документа справке по средствам массовой информации.
Чтобы выполнить однократную, мгновенную проверку соответствия документа справке по средствам массовой информации, обратитесь к значению свойства matches, которое будет true если документ соответствует требованиям справки по средствам массовой информации.
Если вам нужно постоянно отслеживать, соответствует ли документ справке по средствам массовой информации, вы можете вместо этого отслеживать событие change, которое будет передаваться объекту. В статье о есть хороший пример этом в статье о Window.devicePixelRatio.
Примеры
В этом примере выполняется справка по средствам массовой информации (max-width: 600px) и отображается значение свойства matches полученного MediaQueryList в <span>; в результате, вывод будет «true», если ширина видимой области экрана меньше или равна 600 пикселей, и «false», если окно шире.
JavaScript
let mql = window.matchMedia("(max-width: 600px)");
document.querySelector(".mq-value").innerText = mql.matches;
Код JavaScript передаёт справку по средствам массовой информации в matchMedia() для компиляции, затем устанавливает значение innerText объекта <span> в значение свойства matches результатов, чтобы указать, соответствует ли документ справке по средствам массовой информации в момент загрузки страницы.
HTML
<span class="mq-value"></span>
Простой <span> для получения вывода.
Результат
См. Программирование тестов на соответствие справок по средствам массовой информации для дополнительных примеров кода.
Спецификации
| Спецификация |
|---|
| Модуль CSSOM View # dom-window-matchmedia |
Совместимость с браузерами
| Рабочие столы | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
matchMedia |
9 | 12 | 6 | 12.1 | 5.1 | 18 | 6 | 12.1 | 5 | 1.0 | 3 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia