Несмотря на то, что это старый вопрос, он занимает первое место в поисках этой проблемы.
Window.matchMedia является официальным и поддерживается всеми основными браузерами (IE10 +) и позволит вам запрашивать, соответствует ли определенный медиа-запрос в настоящее время.
Из оригинального вопроса:
if (window.matchMedia('screen and (max-width:800px)').matches) {
// it matches
} else {
// does not match
}
Вы также можете прослушивать, когда изменяется результат совпадения запроса, подключив прослушиватель событий к MediaQueryList , который window.matchMedia
возвращает:
var mql = window.matchMedia('screen and (max-width:800px)');
mql.addEventListener(
function(mq) {
if (mq.matches) {
// it matches
} else {
// does not match
}
}
);