4个方面轻松搞定进度条

2023-05-16

不管是在APP还是PC,不管是Loading页,还是在音乐播放器中,进度条的运用都非常广泛,形式也多种多样,让人眼花缭乱。做为一个交互设计新手,项目中也经常碰到进度条设计,总有很多疑惑在心中挥之不去:

目标: 为什么会有进度条的存在?引入进度条的目的是什么?

类型: 结合使用场景,进度条类型有哪些呢?它们的目标是什么?需要展示哪些信息?

形式: 进度条形式多种多样,怎样从本质上区分呢?

运用: 实际项目中如何选用合适的进度条呢?

下面列出了3种常见的进度条样式,我们将结合这3种进度条,一步一步梳理,希望可以帮助大家获得更加清晰的认知。

一、为什么要有进度条?

进度条是较为通俗的叫法,代表的是与进度展示相关的内容,但并不局限于“条形”。它广泛的存在于各种设计中。

从“进度”一词不难看出,“进度条”这一视觉元素其实是为了让用户清晰的了解当前状态。状态表现一般都有一定的参照,同时存在限定值,如果单纯的通过数字/文字表达,不便于用户理解,所以引入了图形化的元素,也就是我们常见的进度条。

进度条本身比较单一,但是当和场景结合起来,就会衍生出不同的类型。不同类型的进度条设计目标,相关信息元素均不相同。

二、进度条有哪些类型?

进度条的实际运用情况多种多样。有些进度条是实时变化的,有些则是静止不动的。当放到实际的场景中,进度条在场景中的含义就有了进一步的扩展。结合使用场景,我将它们分别分成3种类型,分别是“进程型”进度条,“进程型+状态型”进度条和“状态型”进度条。下面将按照如下思路细致介绍这3种进度条。

 1. “进程型”进度条

一般为动态,表明程序正忙于某些功能

“进程型”进度条十分常见,也经常被人们提及,像常见的Loading进度条、下载进度条等均属于此种。在引言的例子中,最左边的进度条就是典型的例子。

在此种使用场景下,进度条的设计目标可以归纳为以下两点:

1、帮助用户明确程序正在做什么,是否正常;

2、如果一定要让用户等待,那就缓解他们等待时的焦虑感;

这类使用场景具有3个显著特征:

1、“进程”概念十分明显,只有将进程走完,才能达到较为稳定的状态;

(例如只有Loading完,才能看到完整的页面;只有扫描完,才能获知完整的扫描结果 )

2、一般都需要用户等待;

3、需要让后台进程在前台可见,帮助用户明晰当前进度;

Alan Cooper在《About Face 交互设计精髓》一书中列举了进度对话框需要完成的任务:

1、向用户清楚地表明正在运行一个耗时的进程;

2、向用户清楚地表明一切正常;

3、向用户清楚地表明进程还需要多长时间;

4、向用户提供一种取消操作和恢复程序控制的方式;

结合上面的设计目标、场景特征和进度条任务,就能够对此类进度条应当包含哪些信息元素,有了更为清楚的了解。一个完整的“进程型”进度条包含以下信息:

1、说明当前正在进行的进程,并展示相关信息(e.g.下载中,动态效果)

2、说明当前进程处于正常状态,并展示相关信息(e.g.下载速度)

3、说明进程进行到的程度,并展示剩余时间(e.g.当前已下载比例,距完成还有多久)

4、提供强相关的操作(e.g.取消,开通会员提升速度)

在实际情况下,并不是所有的“进程型”进度条都具有上述4个方面的信息。进度条的信息元素会受到很多因素的影响,比如进程的时间长短,使用情境的上下文,项目实现成本等。这些不仅会影响信息元素的有无,同时还会影响各信息的优先级。

2. “状态型”进度条

一般为静态,表明当前所处状态

在大部分讲进度条的文章中,“状态型”进度条较少有人提及,但不管是在实际生活中,还是互联网产品中都十分常见。下图中的汽车时速表,就是典型的“状态型”进度条,形式上也脱离了条形。

在此种使用场景下,进度条的设计目标主要为两点:

1、帮助用户明确当前状态;

2、为用户的后续决策提供充足的支持;

这类使用场景具有3个显著特征:

1、“进程”概念被削弱,有些甚至完全没有进程概念;

2、不需要用户等待;

3、充分展示较为稳定的“当前状态”,需要让用户了解基本状况,并基于此作出相关决策。

在引言的例子中,最右边的进度条则为“状态型”进度条。

此种场景下的进度条及相关信息需要完成以下任务:

1、向用户清楚地表明当前状态;

2、向用户清楚地表明重要的进度节点;

3、向用户清晰地展示他可能需要的操作;

结合上面的设计目标、场景特征和进度条任务,就能够更清晰的得出此类进度条应当包含哪些信息元素。一个完整的“进程型”进度条包含以下信息:

1、说明当前的展示项及对应的状态,并展示相关信息;(e.g.电脑管家中的“容量”title)

2、若状态分阶段,即这一阶段和下一阶段的状态有较大差别,则需要说明重要的变化节点;(e.g.“汽车转速表”中的正常阶段和标红阶段)

3、提供强相关的操作(e.g.电脑管家中的“清理”)

在实际情况情况下,并不是所有的“状态型”进度条都有这3类信息,都需要结合实际的场景和上下文进行梳理。例如,汽车时速表中就没有状态的“重要节点”,也无需“汽车时速表”的title,相关的加速、减速操作也是和进度条及相关信息区分开来的。上述3条信息的有无,信息的优先级高低,都是需要结合实际项目具体判断的。

3. “进程型+状态型”进度条

部分结合“进程型”+“状态型”的特点

此类进度条较为特殊,是介于“进程型+状态型”之间的进度条类型,较为常见的例子就是音频&视频播放器中的进度条,引言例子中,中间的进度条则为此种。

它为什么有“进程型”的概念?

-使用场景中有明显的“进程”概念(e.g.音乐播放器正在播放音乐,进程结束则歌曲结束)

它为什么有“状态型”的概念?

-无需用户等待,进度条展示当前状态,这就是聆听音乐的过程,过程的意义更大;

-帮助用户明确当前状态,为后续操作提供进一步的支持;(e.g.快进、上/下一曲)

在此种使用场景下,进度条的设计目标综合了“进程型”和“状态型”两种,主要为3点:

1、帮助用户明确程序正在做什么,是否正常;

2、帮助用户明确当前状态;

3、为用户的后续决策提供充足的支持;

这类进度条的使用场景具有3个显著的特征:

1、有明确的进程概念,和时间关联紧密;

2、进度条不是为了缓解等待的焦虑感,而是为了展示当前状态,让用户做出相关决策;

3、对比完成状态,当前状态转瞬即逝,但意义更大,用户是在进程中&当前状态下实现自己的目标;

此类进度条需要完成的任务如下:

1、向用户清楚地表明当前正在运行进程,进程是否正常;

2、向用户清楚地表明当前状态、重要的进度节点;

3、向用户清晰地展示可能需要的操作

“进程型+状态型”进度条的信息也是同上述任务密切相关。主要包括

1、状态类信息(e.g.当前播放歌词)

2、重要信息节点(e.g.进度条中的白点代表了歌曲的高潮部分起始点)

3、相关操作(e.g.上一曲、下一曲)

同样,在实际场景中并不是这3种信息都存在。“进程型”和“状态型”信息两者之间维持着微妙的平衡关系,两者的优先级高低也是随着使用场景的变化而变化。

三、进度条的形式

有很多文章都会进度条的形式进行过细致的分析,这次就不做过多的描述,主要总结一下常见进度条形式的种类:

从变化方式来看,主要分为2类:

1、偏静态进度条

此种进度条多用于“状态型”进度条。但现在也有很多做法在状态型进度条出现时,在很短的时间内从0变到当前值,同时插入一些动效。但这都是在极短的时间内完成,之后进度条趋于稳定。

2、偏动态进度条

此种进度条多用于“进程型”进度条和“进程型+状态型”进度条。大多数的做法是伴随着整个进程,进度条均会伴随动态效果。

从基础形态来看,主要分为3类:

1、条形

2、圆形

3、不规则型

通过基础形态+动态效果的集合,进度条的形式可以千变万化,有无限的发挥空间,也为进度条的设计增添了不少趣味性。

四、如何选择合适的进度条?

通过上面的分析,相信大家对这3种进度条都有了一定的了解,虽然3者都会涉及到进度的展示,但是从本质上看,是属于完全不同的3种类型。只有依据真实的项目场景,选择合适的进度条类型,才能帮助自己实现设计意图。

这个过程主要有4个步骤:

1、明确自己的设计意图

场景中如果需要使用进度条,想清楚自己的设计意图是什么,是为了帮助用户更明确当前状态,并基于此作出决策呢?还是为了帮助在当前进程中减缓等待的焦虑感?

2、依据设计意图选用合适的进度条类型

结合自己的设计意图,确定3类进度条中哪种更适合当前场景。同时,结合前文分析,带入当前项目进行深挖,明确进度条需要完成哪些任务,展示哪些信息。

3、确定信息元素的优先级

在明确展示信息之后,进一步考虑信息优先级,哪些最重要,哪些不重要,对当前场景下的进度条有更深层次的理解与思考。

4、采用合适的表现形式

进度条的表现形式多种多样,但无论何种形式都应当以前面的思考为前提,在此基础之上,结合实际项目特点,考虑适宜的基础形态+动态效果,这样的进度条设计才是一个优秀的设计。

以上都是个人关于进度条的思考,希望可以沉淀些有用的信息帮助大家,也欢迎大家一起探讨,互相学习,不断进步。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

4个方面轻松搞定进度条 的相关文章

  • CMake与CMakeLists是干什么的?

    写在最前面 xff1a 所有的博文都是为了若干年月以后当我再次翻看可以快速回想起之前的零星知识 学海无涯 xff0c 在看这篇文章的未来的你 xff0c 加油吧 xff01 因为之前看到有些软件中使用了CMake xff0c 不太理解为什么
  • 解决vscode智能代码提示快捷键 Ctrl+Space 无效的问题

    背景 vscode 智能代码提示除了输入时通过字符触发 xff0c 还能使用快捷键ctrl 43 space触发 xff0c 但是在 Windows 下会发现没有效果 因为这个快捷键在Windows下是系统的中文 简体 输入法 输入法 非输
  • Ubuntu系统安装、并解决Ubuntu系统网络连接激活失败问题

    Ubuntu系统安装 并解决Ubuntu系统网络连接激活失败问题 前言 1 Ubuntu安装过程中要保证网络连接稳定 2 Ubuntu安装过程要保证U盘不离开插槽 3 第一次安装请先浏览整个过程 xff0c 再进行操作 4 卸载Ubuntu
  • 激光雷达运动畸变去除方法

    文章目录 一 激光雷达运动畸变产生的原因二 为什么需要解决这个问题 xff1f 三 去除运动畸变的原理四 运动去畸变的方法1 纯估计方法 xff08 ICP VICP xff09 2 传感器辅助的方法 xff08 odom xff0c IM
  • curl下载文件的命令

    curl文件下载 curl将下载文件输出到stdout xff0c 将进度信息输出到stderr xff0c 不显示进度信息使用 silent 选项 1 curl URL silent 这条命令是将下载文件输出到终端 xff0c 所有下载的
  • 倍福ADS通讯(一)——ADS通讯简介

    ADS通讯简介 xff08 一 xff09 简介 xff08 二 xff09 ADS通讯协议概述 xff08 三 xff09 ADS通讯协议的设备标识 xff08 四 xff09 使用TwinCAT Ads中间件 xff08 一 xff09
  • 使用select的TCP服务器

    select函数详解 span class token macro property span class token directive hash span span class token directive keyword inclu
  • undefined symbol问题的查找、定位与解决方法

    今天被客户测出来一个问题 xff1a 程序执行中报错 xff0c 报错内容如下 XXXX xff1a symbol lookup error xff1a home libpdfium so xff1a undefined symbol xf
  • PRD-审批流BPM(结合企微审批引擎和结合flowable方案选择)

    前言 流程设计历来都是比较繁琐之事 xff0c 由于公司急需上线流程化的平台 xff0c 内部系统迫切需要升级 xff0c 在无产品经理的情况下 xff0c 我迎难而上 xff0c 正如 人人都是产品经理 所言 不是每个人都能以产品经理为业
  • VS Code用久了后,启动速度变慢

    目录 前提发现过程解决方法方法一方法二方法三 前提 不是因为电脑性能或者插件装太多导致的 是在使用一段时间后 xff0c 逐渐变慢 看结论直接跳转到解决方法 发现过程 困扰了很久 xff0c 这次一鼓作气找出问题 xff0c 太激动了 xf
  • ROS基础——话题、服务、动作编程

    文章目录 工作空间功能包ROS通信编程1 话题编程2 服务编程3 动作编程 参考资料 工作空间 存放工程开发相关文件的文件夹 xff0c 其中主要包括src xff0c build xff0c devel xff0c install文件夹
  • 一、ROS的五个特点

    一 ROS的五个特点 xff1a 1 点对点设计 点对点的设计通俗的讲就是一个大的工程项目 xff0c 每个动能相互是独立的 xff0c 或者耦合比较低 有一个大脑负责总的任务调度 xff0c 为服务和客户建立连接充当媒介 各个功能之间可以
  • LINK1104 无法打开文件“libboost_atomic-vc142-mt-gd-x64-1_76.lib”

    问题描述 LNK1104 无法打开文件 libboost atomic vc142 mt gd x64 1 76 lib 可能原因 xff1a 相应的包没有安装 xff0c 可以再电脑上搜一下 xff0c 是否搜索到 xff0c 如果搜索到
  • 2021-08-10

    LEGO loam第一次测试运行数据包nsh indoor outdoor成功 xff1a 记录以下 xff0c 以免自己忘记步骤 在第一个终端里 xff1a 1 source catkin ws devel setup bash xff0
  • 趣味GPS

    简介 GPS的全称是全球定位系统 the Global Positioning System 它属于美国政府 xff0c 并由洛杉矶的联合项目办公室 JPO Joint Program Office 管理 1957年 xff0c 苏联发射第
  • 如何访问西门子S1500PLC的IO系统

    提示 xff1a 本文仅代表个人在项目中的使用看法 xff0c 不参与任何真理的辩驳 文章目录 前言一 硬件配置二 访问方式1 S1500与ET200MP1 ET200MP的组态2 ET200MP的IO调用 2 S1500与ET200AL1
  • CubeMX配合PlatformIO开发STM32(STorM32),配置双MPU6050(板载与外置),并使用gui显示数据

    本人使用的设备 驱动 xff1a Windows10串口助手 4 3 25 其实啥都行 桃饱随处可买的usb ttl xff08 ch340G xff09 桃饱随处可买的stlinkmpu6050 xff08 一个板载 xff0c 一个通过
  • ros学习心得(九)ros之Topic通讯机制及发送与接收节点的编码与调试

    节点间需要有数据交互 xff0c 而ros所要解决的问题就是数据该如何交互 一 通讯原理图 ros在设计Node间通讯机制的时候 xff0c 考虑的是很周全的 Publisher 发送消息的 xff0c Subscriber 接收消息的 T
  • 硬石开发板STM32F407IGT6 (HAL库)学习笔记

    硬石开发板STM32F407IGT6 xff08 HAL库 xff09 学习笔记 2020 06 21 2020 06 22 2020 06 23 2020 06 24 该笔记为学习时遇到的问题与解决方法等内容的记录 xff0c 可能有错

随机推荐

  • Ubuntu20/视觉SLAM十四讲踩坑记录

    Ubuntu 视觉SLAM十四讲踩坑记录 Ubuntu xff08 20 xff09 视觉SLAM十四讲踩坑记录 xff1a 共性问题 xff1a 1 安装OpenCV后 xff0c 例程仍无法找到OpenCV文件 ch3 visualiz
  • AMESim2020.1仿真编译失败解决方法之一

    AMESim2020 1仿真编译失败解决方法之一 问题描述 xff1a 软件安装正确 xff0c 在准备和matlab联合仿真时 xff0c 换用VC2015以上版本编译器编译失败 解决方法 xff1a 到AMESim安装路径下 xff0c
  • Linux/Ubuntu20.04下载安装Geant4及B1示例测试

    Linux Ubuntu20 04下载安装Geant4及B1示例测试 0 参考内容1 下载geant4软件包2 geant4安装准备内容3 geant4文件编译4 安装数据包4 1 安装方式14 2安装方式2 5 添加文件路径6 B1示例测
  • Ubuntu20.04进行CUDA11.0及对应CUDNN安装

    Ubuntu20 04进行CUDA11 0及对应CUDNN安装 xff1a 基本步骤 xff1a 1 安装nvidia显卡驱动 可直接通过 xff1a 软件和更新 gt 附加驱动 选择满足CUDA版本的nvidia专有驱动 gt 应用更改
  • git分离头指针处理

    文章目录 1 什么是git分离头指针2 将git 分离头指针所指向的代码 xff08 commit id xff09 保存下来总结 本文将主要介绍一下git分离头指针状态 xff0c 并记录如何将分离头指针状态的代码合并到分支中 1 什么是
  • Docker使用系列——Docker安装(Ubuntu20.04)

    Docker使用系列 Docker安装 xff08 Ubuntu20 04 xff09 卸载安装测试问题 直接按官方安装教程即可 xff1a Install Docker Engine on Ubuntu 卸载 安装过老版本的Docker则
  • Docker使用系列——生成一个Ubuntu20.04+Pyqt5的容器

    由于在自己的电脑中安装Pyqt5不成功 xff0c 原因是与其他环境中的qt版本不兼容 因此 xff0c 了解到了docker xff0c 这里记录一下在docker中安装pyqt5过程 1 安装Docker并从官方仓库拉取Ubuntu 2
  • C语言实现链表(链式存储结构)

    链表 xff08 链式存储结构 xff09 及创建 链表 xff0c 别名链式存储结构或单链表 xff0c 用于存储逻辑关系为 一对一 的数据 与顺序表不同 xff0c 链表不限制数据的物理存储状态 xff0c 换句话说 xff0c 使用链
  • cmake与make的区别及CMakeLists.txt文件编写

    一 cmake与make的区别 make工具是一个自动化编译工具 xff0c 它会根据Makefile中的规则进行批处理编译 当需要编译的文件较多时 xff0c 使用make工具会大大提高效率 但是 xff0c 当项目较大时 xff0c 编
  • 接口测试学习必看 - 实现简易接口测试

    前言 终于整理到了接口测试部分的内容 xff0c 接口测试可以说是软件测试入门到初级软件测试的一个必备进阶技巧 很多挂着 灰盒测试 的标识 xff0c 其实就是对接口测试的另外一层理解 何为 灰盒 xff0c 能够看到一部分本质的东西 xf
  • roscpp 底层通讯协议更改

    ROS为机器人开发者们提供了不同语言的编程接口 xff0c 其中C 43 43 接口叫做roscpp xff0c 用来创建topic service param xff0c 实现ROS的通信功能 roscpp is a C 43 43 im
  • c++学习心得:STL初学(基础篇)

    标准函数库 xff08 STL xff09 学习心得 基础篇 STL主要由两种组件构成 xff1a 一是容器 xff0c 包括vector list set map等类 xff1b 另一种组件是用以操作这些容器的所谓的泛型算法包括find
  • STM32 LoRa无线数传模块 PC通过串口传输数据到单片机

    STM32 PC通过串口助手无线传输数据到单片机 之前学习了STM32单片机 xff0c 使用正点原子的精英板 两个TTL 转LoRa 半双工无线数传模块 xff0c 通过PC机串口助手 xff0c 向32单片机传输数据 xff0c 接收数
  • 如何使用 datax 将 mysql 中的数据拉取到 hive ?

    需求 使用datax将mysql中的数据拉取到hive的ods层 步骤 首先在mysql中确定好需要拉取的表user extend xff0c 然后对应在hive中创建好空表 xff0c 等待拉取 这里对应创建的hive表格如下 CREAT
  • C语言实现TCP客户端、服务器

    服务器 include lt stdio h gt include lt sys socket h gt include lt netinet in h gt include lt arpa inet h gt include 34 str
  • 树莓派控制无人机实现定点降落(概述目录)

    最近在做一个无人机与车协同的项目 xff0c 无人机需要比较准确地落到车的平台上 xff0c 而且因为经费较少只能用树莓派 xff0c 我的思路以及在调试过程中遇到的问题 xff0c 将公布在我接下来的博文里 这里列个目录 xff1a 树莓
  • C语言字符串常用函数总结(持续更新)

    最近在重温C语言的一些基础知识 xff0c 感觉C语言字符串操作还是比较难的 xff0c 在学习的过程中总结了一些常用的字符串相关函数 xff0c 包括C语言字符串输入 字符串输入 计算字符串长度 字符串赋值 字符串分割 字符串拼接 字符串
  • git tag和branch的关系

    tag类似于从commit发展出来的一个可写的玩具分支 它和branch很像 xff0c 但是可以快速取消所有修改 更多是用于快照查看的 如果它基于的commit被ammend变化了 xff0c 他俩的commit id 就会不一样了 xf
  • git命令之分支管理和Tag标签

    x1f4dd 个人简介 个人主页 xff1a 我是段段 x1f64b x1f34a 博客领域 xff1a 编程基础 前端 x1f4bb x1f345 写作风格 xff1a 干货 xff01 干货 xff01 都是干货 xff01 x1f35
  • 4个方面轻松搞定进度条

    不管是在APP还是PC xff0c 不管是Loading页 xff0c 还是在音乐播放器中 xff0c 进度条的运用都非常广泛 xff0c 形式也多种多样 xff0c 让人眼花缭乱 做为一个交互设计新手 xff0c 项目中也经常碰到进度条设