Using Light Events

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

概述

环境光线事件是一个易用的让网页或应用感知光强变化的方法。它使网页或应用能对光强变化做出反应,例如改变用户界面的颜色对比度,或为拍照改变曝光度。

光线事件

当设备的光线传感器检测到光强等级的变化时,它会通知浏览器这个改变。当浏览器得到这个通知后会发布一个提供光强信息的DeviceLightEvent事件。

想要捕获这个事件,可用addEventListener方法把事件处理器绑定到window上(使用devicelight事件名),或者直接把事件处理器赋给window.ondevicelight属性。

该事件被捕捉后,可以从传入的事件对象上的DeviceLightEvent.value属性获取光强(lux)。

示例

window.addEventListener('devicelight', function(event) {
  var html = document.getElementsByTagName('html')[0];
  if (event.value < 50) {
    html.classList.add('darklight');
    html.classList.remove('brightlight');
  } else {
    html.classList.add('brightlight');
    html.classList.remove('darklight');
  }
});

规范

规范 状态 备注
Ambient Light Events
Ambient Light Events
Candidate Recommendation 首次定义

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
DeviceLightEvent 未实现 22.0 (22.0) (Mac OS X only) 未实现 未实现 未实现
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
DeviceLightEvent 未实现 未实现 15.0 (15.0) 未实现 未实现 未实现

Gecko备注

devicelight事件在Firefox Mobile for Android (15.0)和Firefox OS (B2G)上实施并默认可用。从Gecko 22.0 (Firefox 22.0 / Thunderbird 22.0 / SeaMonkey 2.19)开始,Mac OS X桌面版也可使用该事件。对Windows 7的支持还在进展中 (see bug 754199).

参见

文档标签和贡献者