XRSession:visibilitychange 事件
visibilitychange
事件发送到 XRSession
以通知它何时变为可见或隐藏,或者何时变为可见但当前未获得焦点。收到事件后,您可以检查会话的 visibilityState
属性的值以确定新的可见性状态。
语法
在诸如 addEventListener()
的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("visibilitychange", (event) => {});
onvisibilitychange = (event) => {};
事件类型
一个 XRSessionEvent
。继承自 Event
。
事件属性
描述
触发
当 XRSession
变为可见或隐藏时,或者当它变为可见但当前未获得焦点时触发。
当 XRSession
接收到此事件时,可见性状态已更改。
用例
收到事件后,您可以检查会话的visibilityState
属性值以确定新的可见性状态。
示例
此示例演示了如何使用addEventListener()
侦听 WebXR 会话上的visibilitychange
事件,从而开始侦听该事件。
js
navigator.xr.requestSession("inline").then((xrSession) => {
xrSession.addEventListener("visibilitychange", (e) => {
switch (e.session.visibilityState) {
case "visible":
case "visible-blurred":
mySessionVisible(true);
break;
case "hidden":
mySessionVisible(false);
break;
}
});
});
发生可见性状态更改时,会接收该事件并将其分派到函数mySessionVisible()
,该函数使用布尔参数指示会话当前是否正在显示给用户。
您还可以通过将其分配给XRSession
的onvisibilitychange
事件处理程序属性来创建事件处理程序,如下所示。
js
xrSession.onvisibilitychange = (e) => {
/* event handled here */
};
规范
规范 |
---|
WebXR 设备 API # eventdef-xrsession-visibilitychange |
WebXR 设备 API # dom-xrsession-onvisibilitychange |
浏览器兼容性
BCD 表格仅在浏览器中加载