matchmedia和inquire js之间的区别

时间:2013-10-09 01:59:35

标签: javascript enquire.js matchmedia

首先,我想强调一点,我是javascript编程的新手,我正在尝试尽可能多地从这里学习。阅读查询js api,文档以及源代码。我想知道inquire js和传统的使用matchmedia和resize事件监听器之间有什么区别。

链接到查询js:http://wicky.nillia.ms/enquire.js/

非常感谢任何贡献

1 个答案:

答案 0 :(得分:9)

在这里询问作者:)我偶尔会关注SO上提出的问题,所以我可以提供帮助。

没有区别,查询是在 matchMedia之上构建。因此,一个更相关的问题可能是“在matchMedia API之上和之外提供什么?”

询问,最基本的是matchMedia API的简单包装。它的目标是消除您经常使用matchMedia编写的样板代码(它本身并不是一个非常好的API)。它还为处理媒体查询提供了更多的完整生命周期:设置(可以选择延迟),匹配,不匹配,销毁。你必须在没有询问的情况下处理所有这些。此外,它简化了取消注册的媒体查询,并为shouldDegrade

为旧版浏览器提供了一个陷阱门

换句话说,在使用JS中的MQ进行相当高级的工作时,查询很好。否则,你可以使用原始matchMedia API - 我绝对推荐简单的东西。如果你沿着这条路走下去,绝对不要使用调整大小事件,因为你必须将逻辑放入去抖动事件等等,它很快就会变得复杂!而是使用浏览器的本机MediaQueryList.addListener:

matchMedia("screen and (min-width:40em)").addListener(function(mql) {
   if(mql.matches) {
        // do something when matching
   }
   else {
        // do soemthing when no match
   }
});

希望能为你解决问题