当前位置:首页 > 科技  > 软件

前端开发折叠屏应用新姿势!

来源: 责编: 时间:2024-05-07 09:15:28 306观看
导读Chrome 浏览器正在试验两个全新的 API:Device Posture API(设备姿态API)和 Viewport Segments Enumeration API(视口段枚举API),这两个 API 统称为 Foldable APIs(可折叠API),它们从 Chrome 125 版本开始作为起源试验功能提供

V7p28资讯网——每日最新资讯28at.com

Chrome 浏览器正在试验两个全新的 API:Device Posture API(设备姿态API)和 Viewport Segments Enumeration API(视口段枚举API),这两个 API 统称为 Foldable APIs(可折叠API),它们从 Chrome 125 版本开始作为起源试验功能提供。这些 API 旨在帮助开发者更好地针对可折叠设备进行开发和优化,本文就来看看这些 API 如何解锁折叠屏应用开发新姿势。V7p28资讯网——每日最新资讯28at.com

这些 API 是在过去几年中,微软、英特尔、三星和谷歌合作开发的。V7p28资讯网——每日最新资讯28at.com


V7p28资讯网——每日最新资讯28at.com

可折叠设备

可折叠设备主要分为两种物理形态:一种是只有单个柔性屏幕(无缝)的设备,另一种是拥有两个屏幕(有缝,也称为双屏设备)的设备。V7p28资讯网——每日最新资讯28at.com

V7p28资讯网——每日最新资讯28at.com

这些设备为内容的展示提供了多样化的方式。例如,用户可以像翻阅书籍一样使用无缝设备,也可以像使用平板电脑一样将其展开为平面屏幕。而双屏设备因其两块屏幕之间存在物理接缝,需要开发者特别关注这一点。V7p28资讯网——每日最新资讯28at.com

这些新的 API 为开发者提供了改善这类设备用户体验的方法。每个 API 都通过CSS和JavaScript两种途径,向开发者开放了所需的 Web 平台基础功能。V7p28资讯网——每日最新资讯28at.com

Device Posture API

可折叠设备具备改变其姿态(即设备的物理状态)的能力,从而允许开发者提供不同的用户体验。这些新的API确保网页内容能够灵活响应设备的各种折叠状态。V7p28资讯网——每日最新资讯28at.com

设备可以呈现以下两种姿态:V7p28资讯网——每日最新资讯28at.com

  • 折叠态:类似于笔记本电脑或书籍的姿态。

V7p28资讯网——每日最新资讯28at.com

  • 连续态:平板模式,类似于无缝的平板及曲面显示屏。

V7p28资讯网——每日最新资讯28at.com

CSS

Device Posture API 规范引入了一个新的 CSS 媒体特性 device-posture,该特性能够解析出设备的一组固定姿态。这些姿态由预定义的值组成,每个值都代表设备的物理状态。V7p28资讯网——每日最新资讯28at.com

device-posture 特性支持的值与前面描述的设备姿态相匹配:V7p28资讯网——每日最新资讯28at.com

  • folded(折叠态)
  • continuous(连续态)

注意:如果未来有新的设备上市,可能会添加新的姿态。V7p28资讯网——每日最新资讯28at.com

示例:V7p28资讯网——每日最新资讯28at.com

/* 当设备处于“书籍”姿态时 */@media (device-posture: folded) { ... } /* 当设备处于“平板”姿态时,或者像笔记本电脑或台式电脑这样的典型设备 */@media (device-posture: continuous) { ... }

JavaScript

为了查询设备的姿态,现在可以使用一个新的 DevicePosture 对象。V7p28资讯网——每日最新资讯28at.com

const currentPosture = navigator.devicePosture.type;  console.log(`当前设备的姿态是:${currentPosture}`);

要监听设备姿态的变化,并作出响应,可以注册一个事件监听器:V7p28资讯网——每日最新资讯28at.com

navigator.devicePosture.addEventListener('change', (event) => {    console.log(`设备的姿态已更改为:${event.type}`);    // 在这里可以根据新的姿态更新页面的布局或内容  });

Viewport Segments API

Viewport Segments 是CSS环境变量,用于定义视口中逻辑上独立区域的位置和尺寸。当视口被硬件特性(如折叠处或独立显示器之间的铰链)分割时,会形成视口段。这些段是开发者可以视为逻辑上不同的视口区域。V7p28资讯网——每日最新资讯28at.com

CSSV7p28资讯网——每日最新资讯28at.com

视口被分割成的段数通过两个新的媒体特性来呈现,这些特性在CSS媒体查询第5级规范中定义:vertical-viewport-segments(垂直视口段数)和horizontal-viewport-segments(水平视口段数)。这些特性会解析出视口被分割成的段数。V7p28资讯网——每日最新资讯28at.com

此外,还新增了环境变量来查询每个逻辑分割的尺寸和位置。这些变量包括:V7p28资讯网——每日最新资讯28at.com

  • env(viewport-segment-width: x y):查询指定(x, y)位置视口段的宽度。
  • env(viewport-segment-height: x y):查询指定(x, y)位置视口段的高度。
  • env(viewport-segment-top: x y):查询指定(x, y)位置视口段的上边界位置。
  • env(viewport-segment-left: x y):查询指定(x, y)位置视口段的左边界位置。
  • env(viewport-segment-bottom: x y):查询指定(x, y)位置视口段的下边界位置。
  • env(viewport-segment-right: x y):查询指定(x, y)位置视口段的右边界位置。

每个变量中的(x, y)坐标代表了由硬件特性在视口中创建的二维网格中的位置。V7p28资讯网——每日最新资讯28at.com

V7p28资讯网——每日最新资讯28at.com

在上图中,第一个水平段的坐标是 x 0 和 y 0,第二个水平段的坐标是 x 1 和 y 0。第一个垂直段的坐标是 x 0 和 y 0,第二个垂直段的坐标是 x 0 和 y 1。V7p28资讯网——每日最新资讯28at.com

以下代码片段是一个简化的例子,展示了如何创建一个在折叠处两侧都有两个内容区域(col1 和 col2)的分割 UX。V7p28资讯网——每日最新资讯28at.com

<style>  /* 当视口水平分割为两段时 */  @media (horizontal-viewport-segments: 2) {    #segment-css-container {      flex-direction: row;    }    #col1 {      display: flex;      flex: 0 0 env(viewport-segment-right 0 0);      background-color: steelblue;    }    #fold {      width: calc(env(viewport-segment-left 1 0) - env(viewport-segment-right 0 0));      background-color: black;      height: 100%;    }    #col2 {      display: flex;      background-color: green;    }  }  /* 当视口垂直分割为两段时 */  @media (vertical-viewport-segments: 2) {    #segment-css-container {      flex-direction: column;    }    #col1 {      display: flex;      flex: 0 0 env(viewport-segment-bottom 0 0);      background-color: pink;    }    #fold {      width: 100%;      height: calc(env(viewport-segment-top 0 1) - env(viewport-segment-bottom 0 0));      background-color: black;    }    #col2 {      display: flex;      background-color: seagreen;    }  }</style><div id="segment-css-container">  <div id="col1"></div>  <div id="fold"></div>  <div id="col2"></div></div>

下图展示了物理设备上的体验:V7p28资讯网——每日最新资讯28at.com

V7p28资讯网——每日最新资讯28at.com

V7p28资讯网——每日最新资讯28at.com

V7p28资讯网——每日最新资讯28at.com

JavaScript

要获取视口段的数量,可以检查 visualViewport 对象中的 segments 属性,它返回一个数组:V7p28资讯网——每日最新资讯28at.com

const segments = window.visualViewport.segments;  console.log('视口具有以下段:', segments);

segments 数组中的每一项代表视口的一个逻辑段,这些逻辑段使用 DOMArray 来描述坐标和大小。segments 字段是查询时给定状态的快照,为了接收更新的值,需要监听姿态变化(如屏幕旋转)或调整大小事件,并重新查询 segments 属性。V7p28资讯网——每日最新资讯28at.com

简单来说,这段代码可以查看当前视口被逻辑分割成的段的信息。如果想要追踪这些段如何随着窗口大小变化或设备姿态变化而变化,需要设置事件监听器来捕获这些变化并重新获取 segments 属性的值。V7p28资讯网——每日最新资讯28at.com

尝试 Foldable APIs

可折叠 API 已在 Chrome 125 到 Chrome 128 的版本中进行了原始试验。V7p28资讯网——每日最新资讯28at.com

为了进行本地测试,可以通过访问 chrome://flags/#enable-experimental-web-platform-features 来启用可折叠 API。另外,还可以通过在命令行中运行 Chrome 并添加 --enable-experimental-web-platform-featues 参数来启用这些功能。V7p28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-87041-0.html前端开发折叠屏应用新姿势!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: .NET中的多线程超时处理实践

下一篇: 深入了解 aiohttp:掌握异步网络编程的利器!

标签:
  • 热门焦点
  • K6:面向开发人员的现代负载测试工具

    K6 是一个开源负载测试工具,可以轻松编写、运行和分析性能测试。它建立在 Go 和 JavaScript 之上,它被设计为功能强大、可扩展且易于使用。k6 可用于测试各种应用程序,包括 Web
  • 学习JavaScript的10个理由...

    作者 | Simplilearn编译 | 王瑞平当你决心学习一门语言的时候,很难选择到底应该学习哪一门,常用的语言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 微软邀请 Microsoft 365 商业用户,测试视频编辑器 Clipchamp

    8 月 1 日消息,微软近日宣布即将面向 Microsoft 365 商业用户,开放 Clipchamp 应用,邀请用户通过该应用来编辑视频。微软于 2021 年收购 Clipchamp,随后开始逐步整合到 Microsof
  • 重估百度丨“晚熟”的百度云,能等到春天吗?

    &copy;自象限原创作者|程心排版|王喻可2016年7月13日,百度云计算战略发布会在北京举行,宣告着百度智能云的正式启程。彼时的会场座无虚席,甚至排队排到了门外,在场的所有人几乎都
  • 自律,给不了Keep自由!

    来源 | 互联网品牌官作者 | 李大为编排 | 又耳 审核 | 谷晓辉自律能不能给用户自由暂时不好说,但大概率不能给Keep自由。近日,全球最大的在线健身平台Keep正式登陆港交所,努力
  • 认真聊聊东方甄选:如何告别低垂的果实

    来源:山核桃作者:财经无忌爆火一年后,俞敏洪和他的东方甄选依旧是颇受外界关心的&ldquo;网红&rdquo;。7月5日至9日,为期5天的东方甄选&ldquo;甘肃行&rdquo;首次在自有App内直播,
  • 疑似小米14外观设计图曝光:后置相机模组变化不大

    下半年的大幕已经开启,而谁将成为下半年手机圈的主角就成为了大家关注的焦点,其中被传有望拿下新一代骁龙8 Gen3旗舰芯片的小米14系列更是备受大家瞩
  • 首发天玑9200+ iQOO Neo8系列发布首销售价2299元起

    2023年5月23日晚,iQOO Neo8系列正式发布。其中,Neo系列首款Pro之作——iQOO Neo8 Pro强悍登场,限时售价3099元起;价位段最强性能手机iQOO Neo8同期上市
  • OPPO K11样张首曝:千元机影像“卷”得真不错!

    一直以来,OPPO K系列机型都保持着较为均衡的产品体验,历来都是2K价位的明星机型,去年推出的OPPO K10和OPPO K10 Pro两款机型凭借各自的出色配置,堪称有
Top