MediaQueryList
Базовая Широко поддерживается
Эта функция хорошо установлена и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Объект MediaQueryList хранит информацию о запросе на медиа, примененном к документу, с поддержкой как немедленного, так и событийно-ориентированного соответствия состоянию документа.
Вы можете создать объект MediaQueryList, вызвав matchMedia() на объекте window. Результирующий объект обрабатывает отправку уведомлений слушателям, когда состояние запроса на медиа меняется (т. е. когда тест запроса на медиа начинает или перестает оцениваться как true).
Это очень полезно для адаптивного дизайна, так как это позволяет наблюдать за документом, чтобы обнаружить изменение запросов на медиа, вместо периодического опроса значений, и позволяет программно вносить изменения в документ на основе статуса запроса на медиа.
Свойства экземпляра
Интерфейс MediaQueryList наследует свойства от своего родительского интерфейса, EventTarget.
Методы экземпляра
Интерфейс MediaQueryList наследует методы от своего родительского интерфейса, EventTarget.
-
addListener()Устаревший -
Добавляет в
MediaQueryListобратный вызов, который вызывается всякий раз, когда состояние запроса на медиа — соответствует ли документ запросам на медиа в списке — изменяется. Этот метод существует в основном для обеспечения обратной совместимости; если возможно, следует вместо этого использоватьaddEventListener()для наблюдения за событиемchange. -
removeListener()Устаревший -
Удаляет указанный обратный вызов слушателя из обратных вызовов, которые должны быть вызваны, когда
MediaQueryListизменяет состояние запроса на медиа, что происходит всякий раз, когда документ переключается между соответствием и несоответствием запросам на медиа, указанным вMediaQueryList. Этот метод сохранен для обратной совместимости; если возможно, обычно следует использоватьremoveEventListener()для удаления обратных вызовов уведомлений об изменениях (которые ранее должны были быть добавлены с помощьюaddEventListener()).
События
Следующие события передаются объектам MediaQueryList:
change-
Отправляется объекту
MediaQueryList, когда результат выполнения запроса на медиа относительно документа изменяется. Например, если запрос на медиа —(min-width: 400px), событиеchangeсрабатывает всякий раз, когда ширина области просмотра документа изменяется таким образом, что его ширина перемещается через границу 400 пикселей в любом направлении.
Примеры
В этом примере создается MediaQueryList, а затем настраивается слушатель для обнаружения изменения состояния запроса на медиа, выполняя пользовательскую функцию при этом изменении для изменения внешнего вида страницы.
const para = document.querySelector("p");
const mql = window.matchMedia("(max-width: 600px)");
function screenTest(e) {
if (e.matches) {
/* the viewport is 600 pixels wide or less */
para.textContent = "This is a narrow screen — less than 600px wide.";
document.body.style.backgroundColor = "red";
} else {
/* the viewport is more than 600 pixels wide */
para.textContent = "This is a wide screen — more than 600px wide.";
document.body.style.backgroundColor = "blue";
}
}
mql.addEventListener("change", screenTest);
Примечание: Вы можете найти этот пример на GitHub (см. исходный код, а также посмотреть его в действии).
Вы можете найти другие примеры на страницах отдельных свойств и методов.
Спецификации
| Спецификация |
|---|
| CSSOM View Module # the-mediaquerylist-interface |
Совместимость с браузерами
| Рабочие столы | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
EventTarget_inheritance |
39 | 16 | 55 | 26 | 14 | 39 | 55 | 26 | 14 | 4.0 | 39 |
MediaQueryList |
9 | 12 | 6 | 12.1 | 5.1 | 18 | 6 | 12.1 | 5 | 1.0 | ≤37 |
addListener |
9 | 12 | 6 | 12.1 | 5.1 | 18 | 6 | 12.1 | 5 | 1.0 | ≤37 |
change_event |
39 | 79 | 55 | 26 | 14 | 39 | 55 | 26 | 14 | 4.0 | 39 |
matches |
9 | 12 | 6 | 12.1 | 5.1 | 18 | 6 | 12.1 | 5 | 1.0 | ≤37 |
media |
9 | 12 | 6 | 12.1 | 5.1 | 18 | 6 | 12.1 | 5 | 1.0 | ≤37 |
removeListener |
9 | 12 | 6 | 12.1 | 5.1 | 18 | 6 | 12.1 | 5 | 1.0 | ≤37 |
См. также
- Запросы на медиа
- Использование запросов на медиа из кода
window.matchMedia()MediaQueryListEvent- В статье
Window.devicePixelRatioтакже есть полезный пример
© 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/MediaQueryList