该API允许Web应用程序请求将具有屏幕铰链的设备折叠到的角度值。 在适当的条件下(如果允许),将返回表示角度(以度为单位)的值。
1.序言
随着折叠屏设备的出现,目前已在市场上占据了举足轻重的位置,折叠屏的未来不可限量。它具有轻便、易携带、大屏等诸多优点。当设备折叠时,它实际上形成一个角度, 因此,响应式设计实现新的用户体验应运而生。
折叠屏主要包含两种折叠方式:
- 单个柔性屏幕的设备(无缝)
- 具有两个屏幕的设备(带接缝)
它们都可以围绕铰链折叠,当前规范适用于这两种类型的折叠屏。
可能出现的折叠情况:
- 设备尺寸
- 折叠方向
- 横屏竖屏模式(landscape、portrait)
2.Screen接口扩展
// WebIDL
partial interface Screen {
[SameObject] readonly attribute ScreenFold fold;
};
3.ScreenFold 接口
// WebIDL
interface ScreenFold : EventTarget {
readonly attribute unsigned short angle;
readonly attribute ScreenFoldPosture posture;
attribute EventHandler onchange;
};
enum ScreenFoldPosture {
"no-fold",
"laptop",
"flat",
"tent",
"tablet",
"book"
};
ScreenFold属性及值
| 属性 | 值 |
|---|---|
| angle | 屏幕折叠角度 |
| posture | 屏幕折叠状态 |
| onchange | 屏幕折叠角度/状态变化的回调 |
ScreenFoldPosture枚举值
angle和posture的关系
4.横向折叠、竖向折叠
横向折叠
| 状态 | 屏幕方向 | 折叠角度 |
|---|---|---|
| Laptop | "portrait-primary" | "portrait-secondary" | [0° - 140°[ |
| Flat | any | [140° - 185°[ |
| Tent | any | [185° - 335°[ |
| Tablet | any | [335° - 360°] |
| Book | "landscape-primary" | "landscape-secondary" | [0° - 140°[ |
竖向折叠
| 状态 | 屏幕方向 | 折叠角度 |
|---|---|---|
| Laptop | "landscape-primary" | "landscape-secondary" | [0° - 140°[ |
| Flat | any | [140° - 185°[ |
| Tent | any | [185° - 335°[ |
| Tablet | any | [335° - 360°] |
| Book | "portrait-primary" | "portrait-secondary" | [0° - 140°[ |
5.实现方法
1.更新文档的屏幕折叠信息 (初始化angle和posture)
2.屏幕折叠角度变化 (change)
注意:
- 文档不可见时,不会收到chang事件
- 目前该api在发布阶段,处于不稳定状态,可能被其他文件取代。