首先,我想强调一点,我是javascript编程的新手,我正在尝试尽可能多地从这里学习。阅读查询js api,文档以及源代码。我想知道inquire js和传统的使用matchmedia和resize事件监听器之间有什么区别。
链接到查询js:http://wicky.nillia.ms/enquire.js/
非常感谢任何贡献
答案 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
}
});
希望能为你解决问题