使用window.matchMedia()匹配多个CSS媒体查询

本文介绍了如何使用JavaScript中的window.matchMedia()方法响应多个CSS媒体查询。通过存储查询数组并循环调用处理函数,可以实现对多个查询的响应。文章还探讨了如何确定哪个查询触发了处理函数,以及在处理函数中基于触发查询执行特定代码,以提高效率和代码管理。
摘要由CSDN通过智能技术生成

一个常见的问题是如何使用它window.matchMedia() 来对多个CSS媒体查询做出反应。在JavaScript中的CSS媒体查询匹配教程,我们快速概述 并使用它来响应单个CSS媒体查询更改: window.matchMedia()

1

2

3

4

6

7

8

9

10

11

12

13

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">function maxwidth800action(mql){</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">

    if(mql.matches){</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">

        console.log(“您的窗口是800px或更低”)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">

    }</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">

    其他{</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">

        console.log(“你的窗口大于800px”)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">

    }</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">

}</font></font><font></font>

<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">

var mql = window.matchMedia(“screen and(max-width:800px)”)</font></font><font></font>

<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">

maxwidth800action(mql)//在运行时调用maxwidth800action()</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">

mql.addListener(maxwidth800action)//每当触发媒体查询时调用maxwidth800action()</font></font>

在这里,我们只监视一个CSS媒体查询window.matchMedia(),即“ screen and (max-width: 800px)”,并在浏览器跨越该阈值时作出反应。

 响应多个CSS媒体查询

为了响应使用多个CSS媒体查询window.matchMedia(),我们基本上只是多次重复上述一个媒体查询的蓝图。为了简化代码,我们可以先使用数组存储所有window.matchMedia()查询,然后使用for循环来调用处理所有查询的单个函数。让我们看看现在:

1

2

3

4

6

7

8

9

10

11

12

13

14

15

16

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">var mqls = [// window.matchMedia()查询列表</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">

    window.matchMedia(“(max-width:860px)”),</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">

    window.matchMedia(“(max-width:600px)”),</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值