百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

有人告诉你「Popover气泡卡片」这么好用吗

ztj100 2025-07-21 19:07 4 浏览 0 评论

编辑导语:气泡卡片是一个由矩形和三角箭头组成的弹出窗口,可用来做提示引导,或者实现一些页面的耦合,等等。不过任何一种交互组件的使用都有限度,气泡卡片也不例外。本篇文章里,作者对气泡卡片的交互含义、以及设计时的注意事项做了总结,一起来看一下。

前几篇短文小编介绍了「radio button」「check box」等一系列与表单相关等交互组件,相信观众老爷们对表单的页面编排已经有基本的概念。现在我们开启「popover」的世界,简单聊一聊气泡卡片的交互性质是怎么样的。

一、「Popover气泡卡片」的交互含义

「Popover」又称”气泡卡片/气泡弹出框/弹出式气泡/气泡”,是由一个矩形和三角箭头组成的弹出窗口,箭头指向的地方通常是导致气泡卡片弹出的控件或区域。通过点击气泡卡片内的按钮或非气泡卡片的屏幕其他区域可关闭气泡卡片。

1. 「Popover气泡卡片」的交互结构

1)箭头(Arrow)

箭头:「气泡卡片」内承担方向指示作用,位置不固定,随着需要指向的内容方向而改变。

2)容器(Container)

容器:文字信息或者操作信息的承载物。

3)内容(Content)

内容:「气泡卡片」内最重要的部分,可以是说明信息也可以是操作功能。

这里要强调一点,通常我们使用「气泡卡片」会用一些视觉手法强调其是浮于原操作界面之上,例如:描边、投影等。介于「气泡卡片」指向好、善于吸引注意力、操作效率高、可承载信息量大的特点,一般使用在以下三种场景比较多:「快捷导航」「提示引导」「界面解耦」。

2. 快捷导航

由于移动端局限于物理尺寸,设计师不得不将大量的低频但又重要的功能操作塞入「气泡卡片」内,通过“更多”、“···”、“+”的方式呼出「气泡卡片」。

3. 提示引导

基于「气泡卡片」自带箭头这一方向性特质,我们在可以把它使用在一些需要引导的功能设计上面,比如版本迭代后的新功能提示,这样做可以让用户非常明确地知道针对对页面中某项新功能产品方更新了哪些东西。降低用户认知成本。

4. 界面解耦

当不想破坏原界面用户使用节奏与信息密度的情况下,可以利用「气泡卡片」信息承载量大的特点来进行一些页面的解耦,达到屏幕空间复用的目的(此做法适用于大尺寸界面 )。

二、「Popover气泡卡片」的注意点

1. 注意与「Edit Menus 编辑菜单」的区别

在iOS规范当中明确把「Edit Menus 编辑菜单」与「Popover气泡卡片」分为两种不同的交互组件,使用场景也存在不小差异。

「Edit Menus 编辑菜单」用在对文本信息、视图信息等内容编辑功能的承载,如复制和粘贴,其交互动作通常为长按或者双击。

https://developer.apple.com/design/human-interface-guidelines/ios/controls/edit-menus/

「Popover气泡卡片」在iPhone上苹果并不推荐使用,而是让它用在屏幕尺寸更大的iPad上。

https://developer.apple.com/design/human-interface-guidelines/ios/views/popovers/

2. 避免使用时面积过大

不应该把气泡卡片面积做得过大,更不应该占据整个屏幕,这样会造成对原本信息的遮盖。说到底气泡卡片还是一种中等提醒的形式,设计师不应该贪心,设计时应对承载信息做减法,并且要注意不同屏幕下的适配问题。

3. 谨慎考虑弹出位置

气泡卡片的箭头应尽可能直接指向目标的元素。由于无法在屏幕上拖动气泡卡片,因此气泡卡片不应覆盖重要信息。需要注意的是,在屏幕边缘需要转换气泡卡片的方向,例如在屏幕顶部,气泡卡片应当显示在触发位置的下方,否则气泡卡片会超出屏幕导致显示不完整。

4. 请考虑实时保存

基于它的关闭原理“通过点击气泡卡片内的按钮或非气泡卡片的屏幕其他区域可关闭气泡卡片”,造成它极其容易被误触关闭,所以在它内部进行操作时建议采用实时保存的机制,可以有效地给用户进行防错。

5. 每次只使用一个气泡卡片

在同个窗体当中每次只能出现一个气泡卡片,当出现第二个的时候前一个必须关闭。因为从初衷来看气泡卡片就是想让用户进行内容聚焦,暂时屏蔽一些信息,如果多个同时使用的话就变的自相矛盾。并且除了弹窗之外,气泡卡片层之上不该有任何其他元素。

6. 注意存在时间

气泡卡片是一个中等量级的提醒组件,它不像「toast」自动出现自动消失,也不像弹窗绝对的模态强提醒,切换用户当下操作。它的出现时间与模态与非模态是可以由设计师根据业务属性自行把控,所以与前端开发进行沟通时需要把设计需求传递到位。

三、文末小结

早在移动互联网诞生之前,气泡卡片作为快捷导航或者提示引导就在PC和Web里被广泛运用。

在某些设计规范当中(比如iOS的移动端)并不提倡使用气泡卡片,但在移动互联网发展多年的当下,用户使用习惯已经培养完毕,只要把握好气泡卡片的特性,跨平台使用现在也挺常见。同时基于气泡卡片承载信息灵活的特点,在平常的设计工作当中饱受欢迎。

作者:月亮与六便士;公众号:月亮体验设计坊

本文由 @月亮与六便士 原创发布于人人都是产品经理,未经作者许可,禁止转载。

题图来Unsplash,基于CC0协议。

相关推荐

新手学Docker:挂载卷Volumes(docker挂载nfs卷)

默认情况下,在容器内创建的文件,都会保存在容器基于镜像之上的一个可读写层。但是,这一层是依赖于容器而存在的,当容器不存在时,这些数据也就不存在了。而且这些数据紧紧的耦合在容器内部,很难将这些数据导出。...

Docker命令最全详解(39个最常用命令)

Docker是云原生的核心,也是大厂的必备技能,下面我就全面来详解Docker核心命令@mikechen本文作者:陈睿|mikechen文章来源:mikechen.cc一、Docker基本命令...

松勤软件测试:详解Docker,如何用portainer管理Docker容器

镜像管理搜索镜像dockersearch镜像名称拉取镜像dockerpullname[:tag]列出镜像dockerimages删除镜像dockerrmiimage名称或id删除...

【Docker 新手入门指南】第十四章:Docker常用命令

以下Docker常用命令大全,涵盖容器、镜像、网络、数据卷及系统管理等核心操作,结合分类与示例助你快速掌握:一、容器生命周期管理...

Docker 一键清盘术,释放磁盘空间不求人

在日常开发和运维中,Docker容器化让我们的工作更高效,但不知不觉中,磁盘空间却被镜像、容器和卷悄悄吃掉。今天教你一套干净利落的Docker磁盘清理攻略,让你轻松腾出宝贵空间!一、快速查看磁盘...

第六节 Docker 容器核心操作与实践指南

一、镜像与容器的本质关系(一)镜像(Image)的核心特性静态模板:包含应用运行所需的所有依赖(系统库、运行时、配置文件等)不可变性:镜像构建完成后内容不可修改,确保环境一致性...

别再去找Docker命令了,你要的常用的全都在这

Docker常用命令集合给大家介绍一些常用的Docker命令,对你有帮助的同学建议收藏作为一个查询手册哦。Docker容器的一些命令按功能分类大致如下:Docker环境信息info、versio...

Docker 数据持久化最佳实践:Volume 使用全指南

你是不是也经常在使用Docker的时候,遇到“数据持久化”相关的困惑?容器删了,数据也跟着没了?今天就带你深入了解Docker的Volume机制,搞懂什么是Volume、怎么使用、存储在...

【Docker 新手入门指南】第十五章:常见故障排除

一、前期准备:收集关键信息在排查问题前,建议先获取以下系统数据,便于精准定位故障:...

Docker网络与iptables实战指南:从原理到安全加固

一、Docker网络核心原理:容器与iptables的“共生关系”Docker容器的网络能力依赖于Linux内核的两大核心技术:虚拟网络设备(vethpair、网桥)和iptables规则链。以默认...

别再docker exec了!盘点进入容器排错的5种“更优雅”姿势

一、dockerattach:直接“附身”容器的原始方法当容器日志疯狂刷屏时,dockerattach就像直接跳进正在行驶的汽车——能看到仪表盘数据,但方向盘不在你手上。这种直接附加到容器主进程的...

云计算核心技术Docker教程:Docker数据卷的使用

在生产环境中使用Docker,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束)或者需要在多个容器之间进行数据共享,需要将数据从宿主机挂载到容器中,这就会...

【开发技术】Mybatis中进行多表关联查询?性能是不是会变好呢?

Mybatis是一种基于Java的持久层框架,能够帮助我们操作数据库。在Mybatis中,进行多表关联的整合查询,需要使用嵌套查询或者使用ResultMap进行映射。下面,我们将从这两个方面来介绍多表...

Mybatis 批量更新数据 Mysql批量更新数据

通常如果需要一次更新多条数据有两个方式,(1)在业务代码中循环遍历逐条更新。(2)一次性更新所有数据1批量更新相同的值不同的条件...

Mybatis 如何批量删除数据(mybatis批量merge)

Mybatis如何批量删除数据本期以最常用的根据id批量删除数据为例:接口设计1:List类型单参数IntegerdeleteByIds(List<Integer>ids);...

取消回复欢迎 发表评论: