我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么在JavaScript中使用媒体查询

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么在JavaScript中使用媒体查询

本文小编为大家详细介绍“怎么在JavaScript中使用媒体查询”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么在JavaScript中使用媒体查询”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    前言

    说起媒体查询想必大家最先想到的都是CSS中@media,没错,这是我们最常用的媒体查询方法,主要用来为我们的网站做适配处理。

    比如:

    h2 {  font-size: 2rem;  color: green;}@media (min-width: 600px) {  h2 {    font-size: 4rem;  }}

    我们使用 CSS 告诉浏览器标题需要为绿色,字体大小为 2rem。但是当屏幕宽度超过 600px 时,字体大小需要增加到 4rem。

    上面这种方式相信大家都并不陌生,现在我们再来尝试另外一种媒体查询的方法。

    在JavaScript中使用媒体查询

    我们可以在 JavaScript 代码中使用与上面相同的媒体查询。主要API就是 ----matchMedia()

    Window.matchMedia()

    WindowmatchMedia() 方法返回一个新的 MediaQueryList对象,表示指定的媒体查询 (en-US)字符串解析后的结果。返回的 MediaQueryList 可被用于判定 Document 是否匹配媒体查询,或者监控一个 document 来判定它匹配了或者停止匹配了此媒体查询。(MDN)

    语法

    mqList = window.matchMedia(mediaQueryString)

    参数

    matchMedia()方法接受单个参数作为其值,即您要检查的媒体查询。

    • mediaQueryString:一个被用于媒体查询解析的字符串。

    返回值

    一个用来媒体查询的新的MediaQueryList对象

    它包含两个属性:

    media,它将媒体查询存储为序列化字符串

    matches,它基本上是一个布尔值,如果我们作为参数提供的媒体查询与文档匹配则返回true

    调用matchMedia本身不会做太多的事情,并且我们只能在页面加载时检查是否满足查询条件,但如果我们想要在用户改变屏幕大小时也能检测到这种变化,在过去有两种方法,称为addListener()removeListener(),可以使用它们来监听媒体查询状态的任何变化。但是,它们现在已被弃用。

    现在我们应该考虑使用MediaQueryList addEventListener

    addEventListener

    matchMedia - change

    <div id="show"></div><script>  let mqList = window.matchMedia('(min-width: 600px)');function widthChangeCallback(mqList) {  console.log(mqList, '-')  if(mqList.matches) {    show.innerHTML = `<p class="large">我比599px大</p>`;  } else {    show.innerHTML = `<p class="small">我比599px小</p>`;  }}widthChangeCallback(mqList)mqList.addEventListener('change', widthChangeCallback);</script>

    当我们调整窗口大小时,这段代码会检测屏幕宽度并更新文案

    window - resize

    看到这里可能大家都想到了resize事件,没错该matchMedia()方法的另一种替代方法涉及将resize事件侦 听 器附加到window,同样能够实现上面的效果。

    function widthChangeCallback() {  if(window.innerWidth > 599) {    show.innerHTML = `<p class="large">我比599px大</p>`;  } else {    show.innerHTML = `<p class="small">我比599px小</p>`;  }}window.addEventListener('resize', widthChangeCallback);widthChangeCallback();

    性能对比

    既然两种方案都能实现,所以我们很自然地想知道它们中的哪一个能提供更好的性能,以及我们应该在什么时候使用这些解决方案中的每一个。

    widthChangeCallback()每次调整窗口大小时,调整大小事件侦 听 器都会触发该函数。这仅在某些情况下需要响应窗口大小更改的每个实例,例如更新画布。

    但是,在某些情况下,只有当宽度或高度达到某个阈值时才需要发生某些事情。一个例子就是我们上面所做的文本更新。在这种情况下,matchMedia()将会获得更好的性能,因为它仅在媒体查询条件的实际更改时触发回调。

    从上面我们可以看出两者的回调执行次数差异巨大,所以我们在开发过程中应当根据业务的实际需求去选择使用哪一个API。

    读到这里,这篇“怎么在JavaScript中使用媒体查询”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    怎么在JavaScript中使用媒体查询

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    怎么在JavaScript中使用媒体查询

    本文小编为大家详细介绍“怎么在JavaScript中使用媒体查询”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么在JavaScript中使用媒体查询”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言说起媒体查
    2023-07-05

    html5媒体查询语句怎么使用

    本篇内容主要讲解“html5媒体查询语句怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html5媒体查询语句怎么使用”吧!html5媒体查询语句是由媒体类型和一个或多个检测媒体特性的条件
    2023-07-05

    如何在Dreamweaver中使用媒体查询命令

    这期内容当中小编将会给大家带来有关如何在Dreamweaver中使用媒体查询命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、在菜单栏中,我们点击修改这个命令按钮。2、然后我们点击媒体查询这个二级菜单
    2023-06-08

    vue中关于@media媒体查询的使用

    这篇文章主要介绍了vue中关于@media媒体查询的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-13

    CSS媒体查询新增的特性怎么使用

    这篇文章主要介绍了CSS媒体查询新增的特性怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CSS媒体查询新增的特性怎么使用文章都会有所收获,下面我们一起来看看吧。CSS @media 规范prefers-
    2023-07-04

    css媒体查询失效怎么办

    css媒体查询失效的解决办法:1、修改语法如“@media screen and (max-width:768px){...}”;2、在html头文件添加必要的meta标签;3、将媒体查询语句放在原css文档后面即可。
    2023-05-14

    怎么在Flutter中使用媒体播放器

    今天小编给大家分享一下怎么在Flutter中使用媒体播放器的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。使用前的准备工作fl
    2023-07-05

    CSS媒体查询不生效怎么解决

    如果CSS媒体查询不生效,可以尝试以下解决方法:1. 检查媒体查询的语法和语义是否正确。确保媒体查询的条件和CSS规则之间没有语法错误或拼写错误。2. 确保媒体查询的位置正确。媒体查询需要放在对应的CSS规则之前,以确保在满足条件时应用正确
    2023-10-12

    HTML布局技巧:如何使用媒体查询进行媒体样式控制

    文章摘要:本文将介绍如何使用媒体查询在HTML布局中进行媒体样式控制。我们将详细讲解什么是媒体查询,并提供一些具体的代码示例来展示如何使用媒体查询来实现不同屏幕尺寸下的布局调整。了解媒体查询媒体查询是CSS3的一个功能,它允许我们根据不同的
    2023-10-21

    html中使用媒体查询@meda失效原因有哪些

    这篇文章给大家分享的是有关html中使用媒体查询@meda失效原因有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。最近在写自己的个人博客时遇到了一个小问题,为了解决响应式设计,便加入了媒体查询@meida来自
    2023-06-08

    CSS3媒体查询响应式布局bootstrap框架的使用

    这篇文章主要介绍CSS3媒体查询响应式布局bootstrap框架的使用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!媒体设备类型使用详解:
    2023-06-08

    ADO.NET实体框架查询怎么使用

    本篇内容介绍了“ADO.NET实体框架查询怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ObjectQuery 泛型类表示一个查询,
    2023-06-17

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录