跳到正文

进度条

线性进度条,支持标签位置、状态、分步、缓冲、目标线和不确定进度。只写一个带 data-* 的空元素,内容由库生成。

带行为 核心包 1 个方法

示例

在线试用 Markdown 版

代码

<div class="zh-progress" id="pg" data-value="36" data-name="导入数据"></div>
<div class="zh-progress" data-label="top" data-title="存储空间" data-value="62" data-name="存储空间"></div>
<div class="zh-progress" data-status="exception" data-value="42" data-name="上传失败"></div>
<div class="zh-progress" data-steps="10" data-value="60" data-name="完成步骤"></div>
<div class="zh-progress" data-indeterminate="true" data-label="none" data-name="加载中"></div>

<script>
ZhaoUI.progress.set('#pg', 80);
</script>

属性

属性用在取值说明
data-value.zh-progress0 到 100当前进度
data-label.zh-progressoutside(默认)| inside | top | none百分比文字的位置;top 时用 data-title 作标题
data-name.zh-progress字符串无障碍名称(aria-label),务必填写
data-status.zh-progressnormal | success | warning | exception状态色;进度到 100 且未指定状态时自动变为 success,data-auto="off" 可关闭
data-steps.zh-progress整数分步显示,如 10 表示十格
data-buffer.zh-progress0 到 100缓冲进度(比如视频缓冲),画在主进度之下
data-target / data-target-label.zh-progress0 到 1 / 字符串目标线位置(0.8 表示 80%)与它的文字
data-indeterminate.zh-progresstrue不确定进度:显示循环动画,无数值
data-size.zh-progresssm | lg尺寸
is-active / is-striped.zh-progressclass进行中的流光 / 条纹效果

方法

  • ZhaoUI.progress.set(el, value):更新进度(0 到 100),同步更新文字、状态色和 aria-valuenow。el 可以是元素或选择器

样式类

zh-progress

无障碍

  • 元素自动带 role="progressbar" 与 aria-valuenow / aria-valuetext(如「64%,已完成」)
  • 不确定进度带 aria-busy="true",读作「加载中」
  • 状态不只靠颜色:成功和失败会在文字位置显示图标
  • 开启「减少动态效果」时,流光和循环动画会停止

常见问题

进度条是什么?

线性进度条,支持标签位置、状态、分步、缓冲、目标线和不确定进度。只写一个带 data-* 的空元素,内容由库生成。

怎么使用进度条?

先在页面里引入 zhaoui.css 和 zhaoui.js(放在 </body> 前,不加 defer),再照本页「用法」里的标记书写;需要用代码控制时,用「方法」里列出的接口。

进度条有哪些方法?

ZhaoUI.progress.set(el, value):更新进度(0 到 100),同步更新文字、状态色和 aria-valuenow。el 可以是元素或选择器。

进度条支持键盘和读屏吗?

元素自动带 role="progressbar" 与 aria-valuenow / aria-valuetext(如「64%,已完成」);不确定进度带 aria-busy="true",读作「加载中」;状态不只靠颜色:成功和失败会在文字位置显示图标。

进度条需要依赖框架吗?

不需要。ZhaoUI 是原生 HTML、CSS 和 JavaScript,不依赖 jQuery、Vue 或 React。