有人告诉你「Popover气泡卡片」这么好用吗
ztj100 2025-07-21 19:07 23 浏览 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协议。
相关推荐
- Linux集群自动化监控系统Zabbix集群搭建到实战
-
自动化监控系统...
- systemd是什么如何使用_systemd/system
-
systemd是什么如何使用简介Systemd是一个在现代Linux发行版中广泛使用的系统和服务管理器。它负责启动系统并管理系统中运行的服务和进程。使用管理服务systemd可以用来启动、停止、...
- Linux服务器日常巡检脚本分享_linux服务器监控脚本
-
Linux系统日常巡检脚本,巡检内容包含了,磁盘,...
- 7,MySQL管理员用户管理_mysql 管理员用户
-
一、首次设置密码1.初始化时设置(推荐)mysqld--initialize--user=mysql--datadir=/data/3306/data--basedir=/usr/local...
- Python数据库编程教程:第 1 章 数据库基础与 Python 连接入门
-
1.1数据库的核心概念在开始Python数据库编程之前,我们需要先理解几个核心概念。数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它就像一个电子化的文件柜,能让我们高效...
- Linux自定义开机自启动服务脚本_linux添加开机自启动脚本
-
设置WGCloud开机自动启动服务init.d目录下新建脚本在/etc/rc.d/init.d新建启动脚本wgcloudstart.sh,内容如下...
- linux系统启动流程和服务管理,带你进去系统的世界
-
Linux启动流程Rhel6启动过程:开机自检bios-->MBR引导-->GRUB菜单-->加载内核-->init进程初始化Rhel7启动过程:开机自检BIOS-->M...
- CentOS7系统如何修改主机名_centos更改主机名称
-
请关注本头条号,每天坚持更新原创干货技术文章。如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习1.前言本文将讲解CentOS7系统如何修改主机名。...
- 前端工程师需要熟悉的Linux服务器(SSH 终端操作)指令
-
在Linux服务器管理中,SSH(SecureShell)是远程操作的核心工具。以下是SSH终端操作的常用命令和技巧,涵盖连接、文件操作、系统管理等场景:一、SSH连接服务器1.基本连接...
- Linux开机自启服务完全指南:3步搞定系统服务管理器配置
-
为什么需要配置开机自启?想象一下:电商服务器重启后,MySQL和Nginx没自动启动,整个网站瘫痪!这就是为什么开机自启是Linux运维的必备技能。自启服务能确保核心程序在系统启动时自动运行,避免人工...
- Kubernetes 高可用(HA)集群部署指南
-
Kubernetes高可用(HA)集群部署指南本指南涵盖从概念理解、架构选择,到kubeadm高可用部署、生产优化、监控备份和运维的全流程,适用于希望搭建稳定、生产级Kubernetes集群...
- Linux项目开发,你必须了解Systemd服务!
-
1.Systemd简介...
- Linux系统systemd服务管理工具使用技巧
-
简介:在Linux系统里,systemd就像是所有进程的“源头”,它可是系统中PID值为1的进程哟。systemd其实是一堆工具的组合,它的作用可不止是启动操作系统这么简单,像后台服务...
- Linux下NetworkManager和network的和平共处
-
简介我们在使用CentoOS系统时偶尔会遇到配置都正确但network启动不了的问题,这问题经常是由NetworkManager引起的,关闭NetworkManage并取消开机启动network就能正...
你 发表评论:
欢迎- 一周热门
-
-
MySQL中这14个小玩意,让人眼前一亮!
-
旗舰机新标杆 OPPO Find X2系列正式发布 售价5499元起
-
面试官:使用int类型做加减操作,是线程安全吗
-
C++编程知识:ToString()字符串转换你用正确了吗?
-
【Spring Boot】WebSocket 的 6 种集成方式
-
PyTorch 深度学习实战(26):多目标强化学习Multi-Objective RL
-
pytorch中的 scatter_()函数使用和详解
-
与 Java 17 相比,Java 21 究竟有多快?
-
基于TensorRT_LLM的大模型推理加速与OpenAI兼容服务优化
-
这一次,彻底搞懂Java并发包中的Atomic原子类
-
- 最近发表
-
- Linux集群自动化监控系统Zabbix集群搭建到实战
- systemd是什么如何使用_systemd/system
- Linux服务器日常巡检脚本分享_linux服务器监控脚本
- 7,MySQL管理员用户管理_mysql 管理员用户
- Python数据库编程教程:第 1 章 数据库基础与 Python 连接入门
- Linux自定义开机自启动服务脚本_linux添加开机自启动脚本
- linux系统启动流程和服务管理,带你进去系统的世界
- CentOS7系统如何修改主机名_centos更改主机名称
- 前端工程师需要熟悉的Linux服务器(SSH 终端操作)指令
- Linux开机自启服务完全指南:3步搞定系统服务管理器配置
- 标签列表
-
- idea eval reset (50)
- vue dispatch (70)
- update canceled (42)
- order by asc (53)
- spring gateway (67)
- 简单代码编程 贪吃蛇 (40)
- transforms.resize (33)
- redisson trylock (35)
- 卸载node (35)
- np.reshape (33)
- torch.arange (34)
- npm 源 (35)
- vue3 deep (35)
- win10 ssh (35)
- vue foreach (34)
- idea设置编码为utf8 (35)
- vue 数组添加元素 (34)
- std find (34)
- tablefield注解用途 (35)
- python str转json (34)
- java websocket客户端 (34)
- tensor.view (34)
- java jackson (34)
- vmware17pro最新密钥 (34)
- mysql单表最大数据量 (35)