轻量,没有依赖。

安装: npm install enquire.js

API:

  enquire.register(mediaQuery, handler).

    mediaQuery: 字符串,需要响应的媒体。

    handler: 函数或对象,

  enquire.unregister(mediaQuery[, handler])

    mediaQuery: 字符串,需要注销响应的媒体。

    handler: 函数或对象,可不写,一旦写了,只有这个handler被注销

  handler Object:

    destory: 当handler是unregister状态时响应。

    deferSetup: 布尔值。默认false,设置为true时,推迟执行setup里的回调,直到第一次match时才执行。

    setup: 函数。

      一般情况下,如果当match时需要请求数据,改变UI。变成unmatch不需要显示UI,再变回match,又要再一次请求数据,显示UI,请求数据就会有很多次。setup的存在就是让数据只需要请求一次,将数据与UI的显示分离开来。即在setup中请求数据,在match中显示UI,setup的回调是只会执行一次的。

    match: 函数。媒体匹配时的回调。

    unmatch: 函数。媒体不匹配时的回调。   

主要使用的方法为 register。

enquire.register('screen and (max-width: 45em)', {// 以下为使用的五种选择// 当媒体查询与上述匹配时,即当窗口宽度小于45em时的响应match: function() {},
// 当窗口从匹配调整到不匹配以后的响应unmatch: function() {},
// 只会响应一次,when the handler is registered?setup: function() {},
// 默认为false,一旦被设置为true,defers execution of the setup function until the first time the media query is matched
deferSetup: true, destroy: function() {},
// triggered when handler is unregistered. Place cleanup code here
destroy: function() {},
});

inquire允许在register中有多个处理程序,

// 可以把各种回调放在一个数组中
enquire.register('screen and min-width: 45em', [{ match: function() { console.log('handler 1 matched'); } },{ match: function() { console.log('handler 2 matched'); } }
]);// 或者用以下的方式
const query = 'screen and (min-width: 45em)';
enquire.register(query, function() { console.log('handler 3 matched'); });
enquire.register(query, function() { console.log('handler 4 matched'); });
...

当存在很多种不同的屏幕宽度,每种宽度需要不同的布局时,

enquire
.register('screen and (max-width: 50em)', function() {// handler 1 matched
    });
.register('screen and (max-width: 40em)', function() {// handler 2 matched});   

取消注册处理程序,

  enquire提供了unregister方法去取消register,

const query1 = 'screen and (min-width: 40em)';
const query2 = 'screen and (min-width: 5oem)';
const handler1 = {match: function() {},destory: function() { console.log('handler 1 destoryed'); },
};
const handler2 = {match: function() {},unmatch: function() { console.log('handler 2 unmatched'); }
};enquire.register(query1, handler1);
enquire.unregister(query1); // 'handler 1 destoryed'

enquire.register(query2, handler2);
enquire.unregister(query2, handler2); // 'handler 2 unmatched'

  当unregister只有一个参数query时,匹配该query的handler将会全部被注销,即是说不再会有关于该query的任何操作和响应。

  当unregister有两个参数query和handler时,注销指定query的指定handler。

  当handler内有destory时执行destory内的回调,没有destory时,执行unmatch。

在项目中,通过match和unmatch去改变组件的状态,以控制组件是否显示或以怎样的形式显示来达到响应式布局。

转载于:https://www.cnblogs.com/holajulie/p/7891354.html

enquire.js-响应css媒体查询的轻量级javascript库相关推荐

  1. 移动设备响应式网站之CSS媒体查询

    http://www.ibm.com/developerworks/cn/web/wa-cssqueries/index.html 简介 现今每天都有更多的手机和平板电脑问市.消费者能够拥有可想象到的 ...

  2. 使用 CSS 媒体查询创建响应式网站

    简介 现今每天都有更多的手机和平板电脑问市.消费者能够拥有可想象到的各种规格和形状的设备,但是网站开发人员却面临一个挑战:如何使他们的网站在传统浏览器.手机和平板电脑浏览器上有很好的效果,如何在各种大 ...

  3. 响应式开发中合理选定CSS媒体查询分割点

    本文响应式开发中合理选定CSS媒体查询分割点翻译自David Gilbertson的The-100%-Correct-Way-To-Do-CSS-breakpoints一文.本文唔看上去有些拗口,不过 ...

  4. CSS媒体查询详细解读

    一  CSS媒体查询使用的背景: 现今每天都有更多的手机和平板电脑问市.消费者能够拥有可想象到的各种规格和形状的设备,但是网站开发人员却面临一个挑战:如何使他们的网站在传统浏览器.手机和平板电脑浏览器 ...

  5. 使用CSS 媒体查询功能满足不同屏幕分辨率要求

    http://www.adobe.com/cn/devnet/dreamweaver/articles/dw_html5_pt3.html 这是探索Dreamweaver CS5.5的HTML5和CS ...

  6. css 媒体查询 移动端,媒体查询(pc端,移动端不同布局)

    媒体查询语法: 1.内联写法:and之后必须有空格 @media screen and (min-width:960px //判断浏览器大小条件){ body{background:red} //常规 ...

  7. css媒体查询的区间_CSS媒体查询

    css媒体查询的区间 At-media queries are conditions in your stylesheet. The style rules they contain are appl ...

  8. CSS媒体查询:最大宽度或最大高度

    本文翻译自:CSS media queries: max-width OR max-height When writing a CSS media query, is there any way yo ...

  9. 什么是CSS媒体查询

    什么是CSS媒体查询? 一.CSS媒体查询概念 CSS媒体查询即media quaries,可以针对不同的媒体类型定义不同的样式,从而实现响应式布局.也可以针对不同的分辨率定义不同的样式. 1024分 ...

最新文章

  1. Jetson TX2刷机
  2. 浅谈python语言_浅谈Python语言基础知识点!
  3. linux下使用DBCA(database configuration assistant)创建oracle数据库
  4. 取文本索引所执向的值(简单)
  5. javascript 框架_克服JavaScript框架疲劳
  6. oracle字段加约束,Oracle数据库的字段约束创建和维护示例
  7. java中随机数彩票练习_基于javascript实现彩票随机数生成(简单版)
  8. 算法入门篇七 前缀树
  9. Ubuntu(elementary os)因为环境变量 /etc/profile 配置错误,导致登录界面无限循环,无法进入系统的解决方案
  10. xxxxxxxxxccccxcc
  11. Image的Stride
  12. 计算机四级和网络工程师区别,计算机四级网络工程师和软考中级的网络工程师有什么区别啊?...
  13. [转]挑礼物指南:价格不高却有格调的礼物,送给挑礼物困难症的你(多图预警)...
  14. CSS设置背景颜色透明
  15. 数据库第三次实验报告
  16. 伪造微信语音文件的过程分析
  17. t430服务器安装系统,Dell PowerEdge T430
  18. 简述php语言的特点是_PHP是什么语言?有什么的特点?
  19. 托福高频真词List08 // 附托福TPO阅读真题
  20. 兼职程序员可以从什么平台接私活?

热门文章

  1. 独家下载!Java工程师成神必备宝典
  2. linux6.5虛擬機镜像,CentOS 7.2 自动安装光盘实验全过程记录
  3. 低功耗智能硬件开源平台-FireBLE开发板
  4. 【枭·音频】感同声受——《暗影火炬城》PS5 HD震动制作
  5. 第十届蓝桥杯省赛JavaC组真题——详细答案对照(完整版-包含打扫机器人的视频全过程讲解与编码内容对照)
  6. ORACLE 临时表空间使用率过高的原因及临时解决方案
  7. 更改Tomcat虚拟内存大小
  8. 云计算管理三利器:Nagios、Ganglia和Splunk
  9. 一个回滚段收缩的实例
  10. ILRuntime_NewbieGuide—入门