☰
Progress.js快速上手教程:3分钟为页面加上平滑进度条动画
2026/10/4 14:42:20 网站建设 项目流程

Progress.js快速上手教程:3分钟为页面加上平滑进度条动画

【免费下载链接】progress.jsProgressJs is a JavaScript and CSS3 library which help developers to create and manage progress bar for every objects on the page.项目地址: https://gitcode.com/gh_mirrors/pr/progress.js

Progress.js是一个基于 JavaScript 和 CSS3 的轻量级进度条库,它能帮助开发者为页面上的任意对象创建并管理平滑的进度条动画。无论你是前端新手还是普通用户,只需引入两个文件、写下两三行代码,就能在 3 分钟内让页面拥有 iOS 风格的加载动画 🚀

为什么需要 Progress.js?

现代网页离不开加载反馈:数据提交、图片上传、异步请求……一个平滑的进度条能显著提升用户体验。相比手写动画,Progress.js 的优势在于:

  • 零依赖:纯 JavaScript + CSS3 实现,无需 jQuery 等框架
  • 任意目标:可作用于整个页面(body),也可作用于页面上的任意元素
  • 可换肤:内置多种主题模板,通过setOption一键切换
  • 体积小:提供压缩版本,生产环境直接可用

快速安装:获取 Progress.js 源码

仓库是只读的,直接克隆到你的项目中即可:

git clone https://gitcode.com/gh_mirrors/pr/progress.js

克隆后你会得到完整的目录结构:

文件用途
src/progress.js核心源码(开发调试用)
src/progressjs.css主题样式源码
minified/progress.min.js压缩版 JS(生产环境推荐)
minified/progressjs.min.css压缩版 CSS(生产环境推荐)

💡 提示:生产环境请使用minified/目录下的压缩版本,加载更快、体积更小。

一键引入:最快配置方法

在 HTML 页面中依次引入 CSS 和 JS 两个文件即可,官方 README.md 中也明确推荐了这一方式:

<link rel="stylesheet" href="minified/progressjs.min.css"> <script src="minified/progress.min.js"></script>

就这两行,Progress.js 已准备就绪 ✅

启动你的第一条进度条动画

引入完成后,调用progressJs()函数即可。它可以接受三种参数:

  • 不传参数→ 进度条覆盖整个页面(固定在body顶部)
  • 传入选择器字符串(如"#targetElement")→ 作用于指定元素
  • 传入 DOM 对象或对象数组→ 作用于传入的元素
// 为整个页面启动进度条 progressJs().start(); // 或者为页面上的特定元素启动 progressJs("#targetElement").start();

调用start()后,Progress.js 会自动创建一个.progressjs-container容器并注入进度条 DOM,默认从 1% 开始,配合 CSS3 transition 实现平滑动画效果(动画逻辑见 src/progress.js 中的_setPercentFor函数)。

常用 API 一览:set / increase / autoIncrease

Progress.js 采用链式 API 设计,方法都定义在 src/progress.js 的原型上,常用方法如下:

方法作用示例
start()启动进度条动画progressJs().start()
set(百分比)直接设置到指定百分比(上限 100)bar.set(60)
increase(步长)在当前值上增量推进bar.increase(10)
autoIncrease(步长, 毫秒)每隔指定毫秒自动增加,适合模拟加载bar.autoIncrease(5, 300)
end()平滑结束:自动补到 100% 后淡出移除bar.end()
kill()立即结束并移除进度条(不补满)bar.kill()
setOption(键, 值)修改单个配置项bar.setOption("theme", "blackRadiusInputs")

一个典型的完整流程:

var bar = progressJs("#myBox").start(); bar.autoIncrease(5, 300); // 每 300ms 前进 5%,模拟数据加载 // 数据加载完成后收尾 bar.end();

如果你需要监听进度变化,还可以注册回调:onbeforestart(开始前)、onprogress(每次更新百分比时)、onbeforeend(结束前),方便与业务逻辑联动 🎯

一键更换主题:setOption 设置

主题样式定义在 src/progressjs.css 中,通过theme配置项切换。库内置了多个开箱即用的主题:

  • blue(默认)——iOS 7 风格的 2px 蓝色细线条,最百搭
  • blueOverlay——整块元素覆盖式蓝色蒙层
  • blueOverlayRadius——带圆角的覆盖式蒙层
  • blueOverlayRadiusHalfOpacity——半透明圆角蒙层
  • blueOverlayRadiusWithPercentBar——圆角蒙层 + 居中大号百分比数字
  • blackRadiusInputs——深色圆角条,适合表单输入框场景

切换方式只需一行代码,记得在start()之前设置:

progressJs("#myBox") .setOption("theme", "blueOverlayRadius") .start();

如果想自定义主题,只需在 CSS 中新增.progressjs-theme-你的主题名相关的样式类即可,源码中的主题机制见 src/progress.js。

源码与项目文件导航

熟悉库之后,这些文件值得收藏:

  • 完整使用示例:README.md
  • 核心逻辑源码:src/progress.js
  • 主题样式:src/progressjs.css
  • 压缩产物(生产使用):minified/progress.min.js、minified/progressjs.min.css
  • 本地构建配置:Makefile(需先安装 nodejs 和 npm,运行make build重新压缩静态资源)
  • 许可协议(MIT):LICENSE

写在最后

Progress.js 用不到 600 行代码,把"平滑进度条动画"这件复杂的事简化成了progressJs().start()一行调用。从克隆仓库到看到动画,3 分钟绰绰有余——快去给你的页面加上这条顺滑的蓝色进度条吧!✨

【免费下载链接】progress.jsProgressJs is a JavaScript and CSS3 library which help developers to create and manage progress bar for every objects on the page.项目地址: https://gitcode.com/gh_mirrors/pr/progress.js

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询