Javascript 多媒体查询可能吗?

标签 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
});

所以这段代码只会检查最小宽度:992px,但现在我至少还想要 3 个。

最佳答案

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

多个查询的

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());

关于Javascript 多媒体查询可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34855221/

相关文章:

java - 来自 Javascript 的图像 src 放置在同一个 Java 包中

javascript - 尝试在 Node.js 中进行 REST GET 调用

javascript - 如何在 CSS 中设置默认颜色?

html - 当媒体查询覆盖其他媒体查询时

html - 我的媒体查询不起作用

javascript - 计算价格并显示在 WooCommerce 产品单页的价格下(简单价格,可变价格)

javascript - 突出显示事件菜单项作为页面滚动 div(侧边栏滚动菜单)

php - 如何将元素存储到数组中,并检查值是否存在?

javascript - 如何使用jQuery找到离当前位置最近的元素

css - divs 通过 CSS 媒体查询显示属性变化