window.matchMedia 检查CSS的,最近才接触到,看起来挺有用

431 阅读1分钟

CSS的mediaQuery媒体特性,媒体查询

@media all and (min-width: 600px) { 
    body { background: #FF0; } 
}
var result = window.matchMedia('(min-width: 600px)');
  • window.matchMedia方法接受一个mediaQuery语句的字符串作为参数,返回一个[MediaQueryList]对象。该对象有以下两个属性。
  • media:返回所查询的mediaQuery语句字符串。
  • matches:返回一个布尔值,表示当前环境是否匹配查询语句。
var result = window.matchMedia('(min-width: 600px)');
result.matchestrue
result.media"(min-width: 600px)"
result.onchangenull
  • 根据mediaQuery返回的结果是否匹配当前环境,执行不同的代码
if (result.matches) { 
   …… ……
} else { 
   …… ……
}
  • 如果window.matchMedia无法解析mediaQuery参数,返回的总是false,而不是报错
var result = window.matchMedia('(min-width: 6000px)');
result.matches: false
…… ……
  • window.matchMedia方法返回的[MediaQueryList]对象有两个方法,用来监听事件:addListener方法和removeListener方法
指定回调函数 result.addListener(mqCallback); 
撤销回调函数 result.removeListener(mqCallback);

function mqCallback(mql) { 
    if (mql.matches) { 
    } else { } 
}

结语

前端react QQ群:788023830 ---- React/Redux - 地下老英雄

前端交流 QQ群:249620372 ---- FRONT-END-JS前端

(我们的宗旨是,为了加班,为了秃顶……,仰望大佬),希望小伙伴们加群一起学习