Javascript多媒体查询可能吗?

时间:2016-01-18 12:48:56

标签: javascript jquery media-queries

我正在研究JavaScript如何理解多个媒体查询。此时,我使用以下代码来检查浏览器的宽度,但我想创建更多查询。 Google(和Stack)只向我展示了我已编写过的代码。我看到的唯一方法就是使用enquire.js,但我想知道是否还有其他方式。

$(function() {
// Screen width check 
if (matchMedia) {
    var mq = window.matchMedia("(min-width: 992px)");
    mq.addListener(WidthChange);
    WidthChange(mq);
}

// Run function mq (check screen width)
function WidthChange(mq) {
    // Screen size +992px
    if (mq.matches) {
        .....
    }
    // Screen size -992px
    else {
        .....           
    }
// End widthChange(mq) function
}
// End Function script
});

所以这段代码只会检查min-width:992px,但现在我还想要至少3个。

1 个答案:

答案 0 :(得分:1)

您可以通过两个(或更多)查询或联合查询来匹配多个事物。

多个查询

function screenIsWide() {
  var mq = window.matchMedia("(min-width: 992px)");
  return mq.matches;
}

function screenIsToWide() {
  var mq = window.matchMedia("(max-width: 9001px)");
  return mq.matches;
}

function isPrint() {
   var mq = window.matchMedia("print");
   return mq.matches;
}

console.log(screenIsWide() + " " + isPrint() + " " + screenIsToWide());

if(screenIsWide() && isPrint() && screenIsToWide()) {
   // do stuff
}

<强>联合

你可以像普通的CSS一样轻松实现这一点 在这里阅读更多w3schools.com

function isScreenAndIsWide() {
  var mq = window.matchMedia("screen and (min-width: 992px)");
  return mq.matches;
}

console.log(isScreenAndIsWide());