我认为IE9不支持matchMedia,但支持媒体查询。

我在这里可能遗漏了一点,但是当您只需将以下代码添加到样式表中时,为什么要使用matchMedia

.desktop_view{display:block;}
.mobile_view{display:none;}

@media all and (max-width: 700px){
    .desktop_view{display:none;}
    .mobile_view{display:block;}
}


然后按如下所示检查Javascript中的条件?

if($("div.desktop_view").is(":visible")){
    // Do something applicable to desktops
}

最佳答案

window.matchMedia比您所拥有的强大。它不仅允许您以编程方式使用浏览器的本机媒体查询解析,而且返回对象(MediaQueryList)允许您(通过onchange)侦听与用户视口中的更改相对应的事件。

根据MDN Web Docs


  这样就可以观察文档以检测其媒体查询何时更改,而不是定期轮询值,并允许您基于媒体查询状态以编程方式对文档进行更改。


通过此事件处理程序,您可以开发出比简单地调用样式更改更复杂的功能-例如,跟踪旋转到横向的移动用户,以此作为您的网站是否针对肖像进行了精心设计的晴雨表。

关于javascript - 当您仅可以检查元素是否可见时,为什么要使用matchMedia?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46748600/

10-10 22:35