环境光事件 - 使网页或应用程序了解光强度的任何变化的便捷方法

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

环境光事件是使网页或应用程序了解光强度的任何变化的便捷方法。它允许他们对这种变化做出反应,例如,通过更改用户界面(UI)的颜色对比度或通过更改拍摄照片所需的曝光度。

注意: 该 API 在 Web Workers 中不可用(它不在 worker 全局上下文中公开)。

灯光事件

当设备的光线传感器检测到光线水平发生变化时,它将通知浏览器该变化。当浏览器收到此类通知时,它将触发 DeviceLightEvent 事件,该事件提供有关确切光强度的信息(以 lux 为单位)。

通过使用 addEventListener 方法(指定 devicelight 事件名称)或将事件处理程序附加到 window 对象的 window.ondevicelight 属性来捕获此事件。

一旦捕获,事件对象就可以通过 DeviceLightEvent.value 属性访问以 lux 表示的光强度。

Not supported for MacBook with Touch Bar and Windows 7 (see bug 754199).

实例

if ('ondevicelight' in window) {
  window.addEventListener('devicelight', function(event) {
    var body = document.querySelector('body');
    if (event.value < 50) {
      body.classList.add('darklight');
      body.classList.remove('brightlight');
    } else {
      body.classList.add('brightlight');
      body.classList.remove('darklight');
    }
  });
} else {
  console.log('不支持 devicelight 事件');
}

规范

规范 状态 备注
Ambient Light Sensor
Ambient Light Events 的定义
候选推荐 初始定义

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持 不支持≤18 — 79

621

22 — 612

不支持 不支持 不支持
value 不支持13 — 79

621

22 — 612

不支持 不支持 不支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 不支持 不支持 未知

621

15 — 61

未知 不支持 不支持
value 不支持 不支持 未知

621

15 — 61

未知 不支持 不支持

1. 参见错误 1462308

2. 带有 Touch Bar 和 Windows 7 的 MacBook 不支持(请参阅错误 754199 )。

相关链接