Принимает ли window.matchMedia (mediaQueryString) переменные для mediaQueryString? - PullRequest
0 голосов
/ 07 мая 2020

Для удобства я хочу создать функцию, которая будет оценивать и возвращать результат различных медиа-запросов. Для этого я написал следующее:

//Evaluate Media Query
function eMQ(crit) {
    //Build Media Query From Criteria Parameter
    var lMQ = window.matchMedia(crit);
    //Evaluate and Return Result
    if (lMQ.matches) {
        return true;
    } else {
        return false;
    };
};

Мне интересно, правильно ли window.matchMedia(crit) будет использовать строку crit, как если бы строка была явно записана.

Быстрое редактирование: я подумал, что должен прояснить свою цель, учитывая тот факт, что приведенная выше функция, по сути, всего лишь window.matchMedia() с большим количеством шагов. Я просто считаю window.matchMedia() громоздким и хотел бы более короткую версию, в которой не нужно включать .matches в конце.

1 Ответ

1 голос
/ 07 мая 2020

Пока вы передаете допустимую строку медиа-запроса, ваша функция должна работать правильно, не имеет значения, если:

  • Вы отправляете этот медиа-запрос на matchMedia из переменной.
  • Вы явно отправляете жестко запрограммированную строку медиа-запроса на matchMedia.

Например:

var crit = "(max-width: 700px)";
var lMQ = window.matchMedia(crit);

будет иметь тот же результат, что:

var lMQ = window.matchMedia("(max-width: 700px)");
...