首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Super 前端

    vue3 -- 通过简单示例,聊一聊Composition API

    -- {{color}}p>

    当前viewport的宽高比为16:9 -- {{is16than9}}p> div> template> WEB API 说明 示例 Window.matchMedia () 回一个新的MediaQueryList 对象,表示指定的媒体查询字符串解析后的结果 window.matchMedia(mediaQueryString) prefers-color-scheme 检测用户是否有将系统的主题色设置为亮色或者暗色 window.matchMedia('(perfers-color-scheme: dark)') aspect-ratio 可以用来测试 viewport dark': 'light' }, // ② aspectRatioUpdate () { this.aspectRatioMedia = window.matchMedia default { methods: { perfersColorSchemeUpdate () { this.perfersColorSchemeMedia = window.matchMedia

    76740发布于 2021-08-30
  • 来自专栏Super 前端

    vue3 -- 通过简单示例,聊一聊Composition API

    () 回一个新的MediaQueryList 对象,表示指定的媒体查询字符串解析后的结果 window.matchMedia(mediaQueryString) prefers-color-scheme 检测用户是否有将系统的主题色设置为亮色或者暗色 window.matchMedia('(perfers-color-scheme: dark)') aspect-ratio methods: { // ① perfersColorSchemeUpdate () { this.perfersColorSchemeMedia = window.matchMedia dark': 'light' }, // ② aspectRatioUpdate () { this.aspectRatioMedia = window.matchMedia default { methods: { perfersColorSchemeUpdate () { this.perfersColorSchemeMedia = window.matchMedia

    2.1K50发布于 2020-12-09
  • 来自专栏快乐阿超

    js获取当前浏览器是否采用深色主题

    ——达芬奇 代码如下: window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches 对应的mdn : https://developer.mozilla.org/zh-CN/docs/Web/API/Window/matchMedia

    1.1K40编辑于 2023-06-23
  • 来自专栏程序技术知识

    js检测夜晚(dark)模式

    首先,检测matchMedia对象是否存在(否则浏览器不支持夜晚模式(dark mode),您可以退回到白天模式(light mode))。 使用以下命令检查其是否为夜晚模式(dark mode): window.matchMedia('(prefers-color-scheme: dark)').matches 如果启用了暗模式,则将返回 这是一个完整的示例,如果图像为夜晚模式(dark mode),我将反转图像的颜色: const img = document.querySelector('#myimage') if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { img.style.filter="invert(100% 我们可以使用事件侦听器检测模式更改,实现代码如下所示: window.matchMedia('(prefers-color-scheme: dark)') .addEventListener

    3.3K00编辑于 2022-01-20
  • 来自专栏全栈技术

    JavaScript 中的 7 个杀手级单行代码

    const isDarkMode = () => window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ; // Testing console.log(isDarkMode()); 根据caniuse的支持率为matchMedia97.19 %。

    1K41编辑于 2022-04-13
  • 来自专栏前端架构

    DarkMode(2):深色模式解决方案——css颜色变量实现Dark Mode

    stylesheet" type="text/css" media="(prefers-color-scheme: dark)" /> 一般推荐使用link标签解决 CSS 变量 + 媒体查询 window.matchMedia (https://developer.mozilla.org/zh-CN/docs/Web/API/Window/matchMedia) 方法可以用来查询 指定的媒体查询字符串解析后的结果。 结合 CSS 变量和 matchMedia 的查询结果,设置对应的 CSS 主题颜色。该方法更灵活,可以单独抽离主题色进行适配。 --text-background: #fff;  }  :root .dark {    --text-color: #fff;    --text-background: #000;  } 使用 matchMedia const darkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)');  // 判断是否匹配深色模式

    4.2K10发布于 2020-12-11
  • 来自专栏前端专享

    使用 React hooks 监听系统的暗黑模式

    React hooks 实现 前端页面中除了使用 css 实现外,还有很大部分是使用 JavaScript 实现的,比如 echart 图表等,这时就需要使用 JavaScript, 可以使用window.matchMedia themeName, setThemeName] = useState < ThemeName > 'light' useEffect(() => { // 设置初始皮肤 if (window.matchMedia setThemeName('dark') } else { setThemeName('light') } // 监听系统颜色切换 window.matchMedia

    1.3K20编辑于 2022-03-30
  • 来自专栏老K博客

    网页主题自动适配:网页跟随系统自动切换主题

    加载时间延长:随着CSS代码量的增加,页面的加载时间可能会变长,尤其是对于那些包含大量媒体查询的复杂样式表 用户无法自定义:样式固定,用户无法自定义设置主题样式 JS媒体查询 JS同样拥有媒体查询的方法 matchMedia // 如果视口的宽度小于或等于600像素,则输出为true const mql = window.matchMedia('(max-width: 600px)'); console.log(mql.matchs ) 同样的也可以用来查询系统是否使用了暗色主题 const osThemeIsDark = matchMedia("(prefers-color-scheme: dark)").matches; 接下来就采用上面方式 function settingTheme(theme) { // 如果是跟随系统,就获取系统的主题 if (theme === 'os') { const osThemeIsDark = matchMedia matchMedia("(prefers-color-scheme: dark)").addEventListener("change", event => { html.dataset.theme

    1.2K10编辑于 2024-06-20
  • 来自专栏Web 技术

    你知道在 JavaScript 中也能使用媒体查询吗

    Using matchMedia() 为了确定文档是否与JavaScript中的媒体查询字符串匹配,我们使用matchMedia()方法。 我们将媒体查询字符串传递给matchMedia(),然后检查.matches属性。 const mediaQuery = window.matchMedia('(min-width: 768px)') 定义的媒体查询将返回一个MediaQueryList对象。 我们创建一个返回对象(MediaQueryList)的匹配条件(matchMedia()),对其进行检查(.matches),然后如果条件的计算结果为真,就执行操作。并不是完全不像CSS! // Create a condition that targets viewports at least 768px wide const mediaQuery = window.matchMedia

    5.4K30编辑于 2022-07-29
  • 来自专栏Vue中文社区

    H5 项目如何适配暗黑模式

    JavaScript中判断当前模式&监听模式变化 4.1matchMedia Window 的matchMedia() 方法返回一个新的MediaQueryList 对象,表示指定的媒体查询 (en-US JavaScript监听判断 const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)') function darkModeHandler

    3.3K50发布于 2021-07-05
  • 来自专栏Mintimate's Blog

    网站如何适配暗色模式并实现手动、自动切换

    当时还好,我们有JS,使用JS也可以媒体查询,我们就不需要用CSS来媒体查询系统暗色或亮色配色: // JS查询是系统是否为暗色配色 matchMedia('(prefers-color-scheme 是否需要启用暗色模式 else if (Mode == null || Mode == "undefined" || Mode == "") { // 媒体查询,用户系统是否启动暗色模式 if (matchMedia prefers-color-scheme: dark)').matches) { $("body").addClass("night"); } // 媒体查询,用户系统是否启动亮色模式 else if (matchMedia 答案就是创建监听器: // 监听暗色、亮色切换Start let lightMedia = window.matchMedia('(prefers-color-scheme: light)'); let darkMedia = window.matchMedia('(prefers-color-scheme: dark)'); let callback = (e) => { let prefersDarkMode

    10.7K160发布于 2021-02-01
  • 来自专栏Tecvan

    Resize Observer 介绍及原理浅析

    在 ResizeObserver 出现之前,我们也有一些实现响应式布局的方案,包括: JS 方案—— window.onresize / window.matchMedia; CSS 方案——媒体查询; window.matchMedia - JS 方案 可以把 matchMedia 理解为 CSS 中媒体查询的JS方案。 和 window.resize 类似,window.matchMedia 也只能监听 viewport 大小的变化;但和 window.resize 会在每次 viewport 大小变化时都触发事件不同 ,matchMedia 关心的是某些特殊的断点,这往往更符合我们实现响应式网页的实际场景。 这种场景下使用 matchMedia 会比监听 window.resize 要性能更高。

    4.9K40编辑于 2022-12-07
  • 来自专栏泽泽社

    网站夜间模式的实现

    stylesheet" type="text/css" title="dark"> 适配 Mac 的 Dark Mode 纯js判断设备是否进入了夜间模式,感谢simplify提供代码 if ( window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ) { alert('进入夜间模式'); } 旧版适配 Mac 的 Dark

    1.7K21编辑于 2023-04-17
  • 来自专栏深度学习与python

    JavaScript 中的 7 个“杀手级”单行代码

    const isDarkMode = () => window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ; // Testing console.log(isDarkMode()); 同样,据 caniuse 显示,97.19% 的用户设备支持 matchMedia 函数。

    79010编辑于 2022-03-22
  • 来自专栏李洋博客

    个人博客网站怎么适配手机端夜间模式或深色模式

    not (prefers-color-scheme: dark) {     // 非暗色模式样式 } JavaScript 只使用 CSS 条件规则很难实现某些需求,我们可以对 window 使用 matchMedia 方法得到的 Media 使用 matches 方法来获取系统暗色模式状态: if (window.matchMedia('prefers-color-scheme: dark').matches) {     // 是暗色模式做什么 } else {     // 非暗色模式做什么 } 另外还可以监听系统暗色模式的状态,在系统开关暗色模式时作出反应: window.matchMedia('(prefers-color-scheme

    1.3K20编辑于 2022-09-23
  • 来自专栏采云轩

    深色模式适配指南

    二、CSS 变量 + 媒体查询 window.matchMedia (https://developer.mozilla.org/zh-CN/docs/Web/API/Window/matchMedia 结合 CSS 变量和 matchMedia 的查询结果,设置对应的 CSS 主题颜色。该方法更灵活,可以单独抽离主题色进行适配。 text-background: #fff; } :root .dark { --text-color: #fff; --text-background: #000; } 使用 matchMedia const darkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)'); // 判断是否匹配深色模式

    3.6K31发布于 2020-08-18
  • 来自专栏GOOPHER的折腾记录

    Volantis实现自动夜间和日间模式切换

    : hitokoto.hitokoto + daytimemessage, type: 'info' }); return true; } else if (window.matchMedia message: hitokoto.hitokoto + nightmessage, type: 'info' }); return true; } else if (window.matchMedia 监听prefers-color-scheme: dark if (window.matchMedia('(prefers-color-scheme: dark)').matches) { }

    99710编辑于 2022-03-31
  • 来自专栏前端黑板报

    Github 是如何做到同步系统主题颜色的?

    = 'dark'){ }else if(event.mode == 'light'){ } }) 但是我们可以通过另一个途径来实现检测主题的变化: window.matchMedia event.matches) { //dark mode } else { //light mode } }) 首先:mqList = window.matchMedia

    1.1K50编辑于 2022-12-01
  • 来自专栏老九学堂

    12 个常用的 JavaScript 函数

    const isDarkMode = () => window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches

    88710编辑于 2022-08-31
  • 来自专栏友人a的笔记丶

    记录一些在此之前不知道的Web API

    相关文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Resize_Observer_API Window.matchMedia 通过JS进行媒体查询 ,返回一个MediaQueryList对象,在页面满足指定的媒体查询规则时触发绑定的事件处理器; mqList = window.matchMedia(mediaQueryString); //返回MediaQueryList MediaQueryList.removeListener(MediaQueryListListener listener); 相关文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Window/matchMedia

    73920编辑于 2023-02-17
领券