Categories: Browser对象tips

Window matchMedia() 方法 | Window 对象

返回到:Browser 对象:Window 对象

定义和用法

matchMedia() 返回一个新的 MediaQueryList 对象,表示指定的媒体查询字符串解析后的结果。

matchMedia() 方法的值可以是任何一个 CSS @media 规则 的特性, 如 min-height, min-width, orientation 等。

MediaQueryList 对象有以下两个属性:

  • media:查询语句的内容。
  • matches:用于检测查询结果,如果文档匹配 media query 列表,值为 true,否则为 false。

MediaQueryList 对象还可以监听事件。通过监听,在查询结果发生变化时,就调用指定的回调函数。

方法描述
addListener(functionref)添加一个新的监听器函数,该函数在媒体查询的结果发生变化时执行。
removeListener(functionref)从媒体查询列表中删除之前添加的监听器。      如果指定的监听器不在列表中,则不执行任何操作。

语法

window.matchMedia(mediaQueryString)

参数说明:

  • mediaQueryString: 必需,一个字符串,表示即将返回一个新 MediaQueryList 对象的媒体查询。

返回值返回 MediaQueryList 对象。

所有主要浏览器都支持 matchMedia() 方法

实例

DEMO1:判断屏幕(screen/viewport)窗口大小。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Web176教程(Web176.com)</title>
</head>
<body>

<p>判断屏幕(screen/viewport)窗口大小。</p>

<button >

DEMO2:判断屏幕(screen/viewport)窗口大小,在小于等于 700 像素时修改背景颜色为黄色,大于 700 像素时修改背景颜色为粉红色。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Web176教程(Web176.com)</title>
</head>
<body>

<p>判断屏幕(screen/viewport)窗口大小,在小于等于 700 像素时修改背景颜色为黄色,大于 700 像素时修改背景颜色为粉红色。</p>
<p>重置浏览器大小查看效果。</p>

<script>
function myFunction(x) {
    if (x.matches) { // 媒体查询
        document.body.style.backgroundColor = "yellow";
    } else {
        document.body.style.backgroundColor = "pink";
    }
}
 
var x = window.matchMedia("(max-width: 700px)")
myFunction(x) // 执行时调用的监听函数
x.addListener(myFunction) // 状态改变时添加监听器
</script>

</body>
</html>

terry

这个人很懒,什么都没有留下~

Share
Published by
terry

Recent Posts

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

1 天 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

1 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

2 周 ago

Vue3:手动清理keep-alive组件缓存的方法

Vue3中手动清理keep-a…

2 周 ago

聊聊React和Vue组件更新的实现及区别

React 和 Vue 都是当…

3 周 ago