适用于双屏设备的 JavaScript visualViewport.segments
API
属性 window.visualViewport.segments
返回一个数组, DOMRect
其中包含浏览器窗口跨越的所有显示区域的 。
此 API 在 Microsoft Edge 97 及更高版本中可用。
语法
let screens = window.visualViewport.segments;
console.log(screens.length);
/**
* Output:
* Surface Duo with browser spanning: 2
* Surface Duo with browser and another app side-by-side: 1
* Desktops, Macs, Etc: 1
**/
API 生存期
从 返回的值 window.visualViewport.segments
是调用方法时设备状态不可变快照,如果用户更改了跨越状态或旋转了设备,则以前检索到的窗口段将无效。
开发人员可以侦听窗口 resize
事件或 orientationchange
检测浏览器的大小调整或设备是否已旋转。
示例
/**
* Browser state: spanning on Surface Duo device
**/
let screens = window.visualViewport.segments;
console.log(screens.length); // prints 2
/**
* Some time later.. user resizes the browser
*
* Browser state: residing on 1 display
**/
window.addEventListener('resize', () =>{
screens = window.visualViewport.segments;
console.log(screens.length); // prints 1
});