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),仅供参考