XRSession: visibilitychange 事件
visibilitychange 事件发送给一个 XRSession 对象,以通知它何时变为可见或隐藏,或者何时变为可见但当前未获得焦点。收到事件后,您可以检查会话的 visibilityState 属性值来确定新的可见性状态。
语法
在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("visibilitychange", (event) => { })
onvisibilitychange = (event) => { }
事件类型
一个 XRSessionEvent。继承自 Event。
事件属性
除了下面列出的属性之外,父接口 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 Device API # eventdef-xrsession-visibilitychange |
| WebXR Device API # dom-xrsession-onvisibilitychange |
浏览器兼容性
加载中…