css折叠屏api

372 阅读2分钟

blog.csdn.net/alitech2017…

该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°[
Flatany[140° - 185°[
Tentany[185° - 335°[
Tabletany[335° - 360°]
Book"landscape-primary" | "landscape-secondary"[0° - 140°[
竖向折叠

状态屏幕方向折叠角度
Laptop"landscape-primary" | "landscape-secondary"[0° - 140°[
Flatany[140° - 185°[
Tentany[185° - 335°[
Tabletany[335° - 360°]
Book"portrait-primary" | "portrait-secondary"[0° - 140°[

5.实现方法

1.更新文档的屏幕折叠信息 (初始化angle和posture)

2.屏幕折叠角度变化 (change)

注意:

  • 文档不可见时,不会收到chang事件
  • 目前该api在发布阶段,处于不稳定状态,可能被其他文件取代。