логотип PurpleSchool
логотип PurpleSchool

window.matchMedia в JavaScript

Автор

Дмитрий Фандорин

window.matchMedia - это встроенный в браузер API, который позволяет получить доступ к медиавыражениям CSS из JavaScript. Он может быть использован для изменения поведения веб-страницы в зависимости от параметров экрана и системной темы оформления.

Форма записи

Для использования window.matchMedia в JavaScript необходимо создать объект MediaQueryList, который содержит информацию о медиавыражении. Объект можно создать, вызвав метод window.matchMedia(mediaQueryString), где mediaQueryString - строка, содержащая медиавыражение.

Пример:

let mediaQuery = window.matchMedia('(min-width: 768px)');

Описание работы

MediaQueryList предоставляет несколько методов и свойств, позволяющих определить ширину экрана по заданному медиавыражению и системную тему оформления.

  • matches
    • свойство, возвращающее true, если медиавыражение соответствует текущему состоянию экрана, и false в противном случае.

Пример:

let mediaQuery = window.matchMedia('(min-width: 768px)');
if (mediaQuery.matches) {
  // выполняется, если ширина экрана больше 768 пикселей
} else {
  // выполняется, если ширина экрана меньше или равна 768 пикселям
}
  • addListener(callback)
    • метод, позволяющий добавить обработчик события, который будет вызываться при изменении состояния медиавыражения.

Пример:

let mediaQuery = window.matchMedia('(min-width: 768px)');
mediaQuery.addListener(function(event) {
  if (event.matches) {
    // выполняется, если ширина экрана больше 768 пикселей
  } else {
    // выполняется, если ширина экрана меньше или равна 768 пикселям
  }
});
  • media
    • свойство, возвращающее строку, содержащую медиавыражение.

Пример:

let mediaQuery = window.matchMedia('(min-width: 768px)');
console.log(mediaQuery.media); // выводит "(min-width: 768px)"

Определение ширины экрана по заданному медиавыражению MediaQueryList позволяет определить ширину экрана по заданному медиавыражению. Например, можно определить, является ли ширина экрана больше 768 пикселей, используя медиавыражение (min-width: 768px).

Пример:

let mediaQuery = window.matchMedia('(min-width: 768px)');
if (mediaQuery.matches) {
  console.log('Ширина экрана больше 768 пикселей');
} else {
  console.log('Ширина экрана меньше или равна 768 пикселям');
}

Определение системной темы оформления MediaQueryList также позволяет определить системную тему оформления, используя медиавыражение (prefers-color-scheme: dark) для темной темы и (prefers-color-scheme: light) для светлой темы.

Пример:

let darkModeQuery = window.matchMedia('(prefers-color-scheme: dark)');
if (darkModeQuery.matches) {
  console.log('Системная тема оформления - темная');
} else {
  console.log('Системная тема оформления - светлая');
}

Заключение

window.matchMedia - это важный инструмент для получения информации о медиавыражениях CSS из JavaScript. Он позволяет определить ширину экрана по заданному медиавыражению и системную тему оформления, что может быть использовано для изменения поведения веб-страницы в зависимости от параметров экрана и предпочтений пользователя.

Стрелочка влевоPerformance в JavaScriptlocalStorage в JavaScriptСтрелочка вправо

Все гайды по Javascript

Как работает метод trim() - JavaScriptКак работает метод toUpperCase() - JavaScriptКак работает метод toLowerCase() - JavaScriptКак работает метод substring() - JavaScriptКак работает метод startsWith() - JavaScriptКак работает метод split() - JavaScriptКак работает метод slice() - JavaScriptКак работает метод search() - JavaScriptКак работает метод replaceAll() - JavaScriptКак работает метод replace() - JavaScriptКак работает метод repeat() - JavaScriptКак работает метод padStart() - JavaScriptКак работает метод padEnd() - JavaScriptКак работает метод matchAll() - JavaScriptКак работает метод match() - JavaScriptКак работает метод localeCompare() - JavaScriptКак работает свойство length - JavaScriptКак работает метод lastIndexOf() - JavaScriptКак работает метод indexOf() - JavaScriptКак работает метод includes() - JavaScriptКак работает метод fromCodePoint() - JavaScriptКак работает метод fromCharCode() - JavaScriptКак работает метод endsWith() - JavaScriptКак работает метод concat() - JavaScriptКак работает метод codePointAt() - JavaScriptКак работает метод charCodeAt() - JavaScriptКак работает метод charAt() - JavaScript
Итератор в JavaScript
try...catch в JavaScriptError в JavaScript
Событие wheel в JavaScriptСобытие unload в JavaScriptСобытие touch в JavaScriptСобытие submit в JavaScriptСобытие scroll в JavaScriptСобытие reset в JavaScriptМетод .preventDefault() в JavaScriptСобытие mouseover в JavaScriptСобытие mouseout в JavaScriptСобытие load в JavaScriptСобытие keyup в JavaScriptСобытие keydown в JavaScriptСобытие invalid в JavaScriptСобытие input в JavaScriptСобытийная модель Event в JavaScriptОбъект события Event в JavaScriptСобытие DOMContentLoaded в JavaScriptСобытие dblclick в JavaScriptСобытие click в JavaScriptСобытие change в JavaScriptСобытие beforeunload в JavaScript
Как работает метод some() - JavaScriptКак работает метод reverse() - JavaScriptКак работает метод reduce() - JavaScriptКак работает метод map() - JavaScriptКак работает метод isArray() - JavaScriptКак работает метод indexOf() - JavaScriptКак работает метод includes() - JavaScriptКак работает метод from() - JavaScriptКак работает метод forEach() - JavaScriptКак работает метод flatMap() - JavaScriptКак работает метод flat() - JavaScriptКак работает метод findIndex() - JavaScriptКак работает метод find() - JavaScriptКак работает метод filter() - JavaScriptКак работает метод every() - JavaScriptМассивы в JavaScript
Открыть базу знаний