模态对话框是伴随着半透明黑色遮罩出现的一种弹窗形式,用于关键信息录入或信息确认,需要用户进行操作,会中断用户当前的任务流程,所以请谨慎使用对话框以避免对用户过度干扰。
** 在用户界面中弹出来的对象几乎都可认为是弹窗,弹窗的交互形式主要分为模态与非模态两种:
- 模态弹窗:用户必须给予弹窗反馈,除非点击关闭或者操作完成,否则弹窗不会消失,通常表现形式上会给页面遮罩,让用户集中注意力在弹窗上。常见的模态弹窗是对话框、抽屉;
- 非模态弹窗:用户不必一定给予反馈,不影响、打断用户其他操作或正常使用,通常只会在屏幕上短暂停留,常见有通知提醒、全局提示、气泡卡片、文字提示等;
适用范围
何时使用:
- 这个信息很重要,需要打断用户的流程来获取注意力,并需要用户给予操作反馈;
- 用户在当前流程中有一个支线步骤,在不丢失当前页面上下文的同时,希望用户在完成该支线步骤后继续之前的流程;
- 描述当前行为、操作可能导致的后果,提示用户,需要让用户决定;
- 在用户开始操作之前,告知一些重要信息;
- 通知用户有关其当前任务的紧急信息,通常用于报告系统错误或告知结果;
何时不使用:
- 内容过多,伴随着复杂的交互,导致对话框过分密集,此时应该考虑更大的容器载体,比如
Drawer 抽屉
、新开页面; - 不丢失当前页面的同时,并行进入一个新流程,并能够在两个流程之间随时切换,此时可采用新开页面的形式;
- 简单频繁的确认操作,请使用
Popconfirm 气泡确认框
,鼠标操作路径短更便于用户操作; - 对话框的二次确认,请使用
Popconfirm 气泡确认框
; - 一段无需操作的简单信息想要告知用户,且又不阻断用户当前的流程,请使用
Notification 通知提示
;
类型
类型 | 说明 |
---|---|
基础型 | 基础弹窗结构,支持信息展示或录入 |
确认型 | 二次确认,询问、提示用户当前操作可能导致的后果,需要让用户决定 |
提示型 | 状态提示,包含「中立信息、成功、警示、错误」四种状态 |
基础型
内容区的可附加表格、文字、表单、警告提示、步骤条等内容:
警告提示:
步骤条:
穿梭框:
表格:
确认型
提示型
构成解析
结构
基础型:
头部Header
- 标题:标题应清晰传达对话框的内容,需要与触发入口文案保持一致;
- 关闭按钮:用户主动点击按钮来关闭当前对话框;
内容区Content
- 可为文字,也可附加表格、文字、表单、警告提示、步骤条等内容;
底部Footer
- 操作项:位于右侧
- 主要按钮始终置于最右侧,其余按钮根据重要性从右往左排列;
- 如果只提供一个操作,则必须是主要按钮;
- 一般为 2 个操作,即「确定」「取消」;
- 分步对话框存在 3 个操作,上一步放在主要按钮左侧;
- 扩展信息(可选):位于左侧,可以承载独立操作项、行内提醒、辅助说明信息等,如果放置
Link
,则必须为新开浏览器标签页面的形式。
- 操作项:位于右侧
遮罩Mask
- 遮罩层级最高,覆盖全页面,遮罩背后的元素不可交互,除非关闭对话框。
确认型:
标题+图标 Title+Icon
- 由「问号」图标与标题组成;
内容区Content
- 为内容文本,提示用户当前操作可能导致的后果;
操作Action
- 分别是「确定」与「取消」,确定作为主要按钮,置于右侧;
遮罩Mask
- 遮罩层级最高,覆盖全页面,遮罩背后的元素不可交互,除非关闭对话框。
提示型:
标题+图标 Title+Icon
- 由图标与标题组成,图标根据状态分「中立信息、成功、警示、错误」四种;
内容区Content
- 为对当前状态的简要描述文本;
操作Action
- 只有一个操作,即「我知道了」;
遮罩Mask
- 遮罩层级最高,覆盖全页面,遮罩背后的元素不可交互,除非关闭对话框。
尺寸
基础型:
- 宽度: | 等级 | 尺寸 | 计算公式 | | —- | —- | —- | | S | 368 | 4 × 80 + 48 = 368 | | M(Default) | 528 | 4 × 120 + 48 = 528 | | L | 688 | 4 × 160 + 48 = 688 | | XL | 848 | 4 × 200 + 48 = 848 | | XXL | 1008 | 4 × 240 + 48 = 1008 |
最小宽度为 480px;最大宽度 = calc(85vw),内容过长时,内容区域出现水平滚动条;最大、最小宽度之间,自适应内容;- 高度:
- 最大高度 = calc(85vh-100px),内容过多时,内容区域出现垂直滚动条;
- 最小高度为 200px;
- 最大、最小高度之间,自适应内容;
确认型:
- 宽度:固定为 480px;
- 高度:自适应内容;
提示型:
- 宽度:固定为 480px;
- 高度:自适应内容;
间距
交互行为
触发
- 通过按钮或其他元素触发,展开模态对话框,由用户主动发起;
- 「提醒型」可能会在页面加载完成后立刻出现,也可能系统推送状态提示,由系统发起;
关闭
存在 3 种方法关闭当前的模态对话框:
- 点击弹窗右上角的关闭图标按钮;
- 使用键盘中的 ESC 键,录入时不建议使用,容易造成数据丢失;
- 点击弹窗外的遮罩区域,录入时不建议使用,容易造成数据丢失;
内容溢出的处理
- 头部与底部始终保持固定;
- 对话框高度小于最大高度时,内容区的高度随内容自适应;
- 对话框高度超过最大高度时,内容区激活内部滚动条;
尺寸过渡
在部分场景中,比如分步场景,前后两个步骤的对话框尺寸会需要内容的不同有所调整,这时可以使用动画来做过渡。
层级递进
暂时保留,因为目前暂时没用到二级对话框
- 层级递进能够让用户在同一个模态对话框内完成不同的步骤,并方便的返回上一步骤;
- 除一级步骤外,其余步骤中的对话框 Header 会激活返回图标按钮,用于返回上一步骤;
拖动
基础型对话框,鼠标左键按住头部时支持拖动;
布局
对话框的初始位置为水平垂直居中:
内容溢出时,内容区激活内部滚动条