--- title: Using Light Events slug: orphaned/Web/API/Ambient_Light_Events tags: - WebAPI - 事件 - 环境光 translation_of: Web/API/Ambient_Light_Events original_slug: Web/API/Ambient_Light_Events ---
环境光线事件是一个易用的让网页或应用感知光强变化的方法。它使网页或应用能对光强变化做出反应,例如改变用户界面的颜色对比度,或为拍照而改变曝光度。
当设备的光线传感器检测到光强等级的变化时,它会向浏览器通知这个变化。当浏览器得到这个通知后,会发送(fire)一个提供光强信息的 {{domxref("DeviceLightEvent")}} 事件。
想要捕获这个事件,可用 {{domxref("EventTarget.addEventListener","addEventListener")}} 方法把事件处理器绑定到 window
上(使用 {{event("devicelight")}} 事件名),或者直接把事件处理器赋值给 {{domxref("window.ondevicelight")}} 属性。
该事件被捕捉后,可以从传入的事件对象上的 {{domxref("DeviceLightEvent.value")}} 属性获取光强(单位为 {{interwiki("wikipedia", "lux")}})。
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 事件'); }
规范 | 状态 | 备注 |
---|---|---|
{{ SpecName('AmbientLight', '', 'Ambient Light Events') }} | {{ Spec2('AmbientLight') }} | 首次定义 |
{{Compat("api.DeviceLightEvent")}}
{{event("devicelight")}} 事件在 Firefox Mobile for Android (15.0) 和 Firefox OS (B2G) 上实现并默认可用。从Gecko 22.0 {{geckoRelease("22.0")}} 开始,Mac OS X桌面版也可使用该事件。