问题库 JavaScript / TypeScript how-to

JavaScript 如何监听媒体查询变化

快速答案

用 matchMedia 创建查询,并监听 change 事件。

js
const query = matchMedia('(prefers-color-scheme: dark)');
query.addEventListener('change', event => console.log(event.matches));

使用要点

  • 确认代码运行在浏览器环境;如果服务端渲染会执行同一段代码,要把读取逻辑放到客户端生命周期里。
  • 处理 URL、Cookie 或存储值时,先约定编码、过期时间和缺省值。

相关内容