vue-circle-progress:一条命令装好 Vue 动画圆形进度条
【免费下载链接】vue-circle-progressA Vue.js component to draw animated circular progress bars项目地址: https://gitcode.com/gh_mirrors/vu/vue-circle-progress
vue-circle-progress 是一个 Vue 2 组件,专门用来在页面里绘制带动画的圆形进度条(circular progress bar):给一个progress数值,圆环就从 0 平滑涨到目标值,圆心同步显示百分比。它的 npm 包名是vue2-circle-progress,注意带"2"。
它解决什么问题:Vue 项目里的动画圆形进度条
从零画一个圆形进度条比想象中麻烦:要在 SVG 或 Canvas 里算弧线角度、逐帧写动画,还得在圆心叠加百分比文字并调整字号。一页出现几个环时,这些代码就到处重复。vue-circle-progress 的定位是 Vue 项目的"开箱即用"进度环:它把成熟的绘图库 jquery-circle-progress 封装成标准 Vue 组件,你在模板里声明几个 props,就得到一个会动画、能换色、可发事件的进度条。
快速上手:vue-circle-progress 安装与本地运行
在现有 Vue 2 项目里,只需执行npm install vue2-circle-progress,然后像普通组件一样导入、注册、写进模板即可,progress之外全部参数可选。
🚀 想先跑起来看效果,可以把仓库克隆到本地:
git clone https://gitcode.com/gh_mirrors/vu/vue-circle-progress cd vue-circle-progress && npm install && npm run dev启动后示例运行在 localhost:8080,页面上有一个 Redraw 按钮,点击后能看到进度带动画跳到 60%,方便直观感受默认缓动效果。
核心功能拆解:填充、事件与动态更新
只有 progress 是必传参数
必填项只有progress(目标百分比)。size控制圆的直径(默认 200),thickness控制环的粗细(默认自动按 size 的 1/14 计算),reverse反转动画与弧线方向,start-angle改起始角度,line-cap决定弧线端点是圆头还是平头。
渐变色与图片都能填
fill接受纯色字符串、渐变色数组(如{ gradient: ["red", "green", "blue"] },还支持指定渐变角度),甚至可以传一张图片 URL 让弧线按图片填充;empty-fill则单独设置未填充部分的底色。
三个事件钩住动画全过程
组件会向父组件发出vue-circle-init(初始化完成)、vue-circle-progress(每一步动画都触发,携带当前百分比)、vue-circle-end(动画结束)。官方演示 src/App.vue 就监听进度事件,在超过阈值时实时切换填充颜色。
两个方法做动态更新
给组件加一个ref,就能在父组件里调用updateProgress(value)改变进度——数值变化带动画过渡、不重绘组件本体;updateFill(fill)则随时切换填充样式,适配上传进度这类实时刷新的场景。
动画时长与缓动可调
默认动画 1200ms、缓动为 ease-in-out-cubic;把animation设为false可整体关闭动画,animation-start-value设成 1.0 还能做出反向"排空"的效果。
适用场景与选型建议
- 文件上传/下载进度:配合
updateProgress方法,进度条能跟随真实进度实时推进 - 仪表盘百分比卡片:
fill上渐变、show-percent在圆心显示数字,一块卡片就是完整指标 - 任务加载反馈:
vue-circle-end事件触发后接后续逻辑,比如跳转或弹出结果
💡 什么情况不建议用:它底层依赖 jQuery 绘图库,且是 Vue 2 组件(依赖 vue ^2.0.0),Vue 3 项目无法直接安装使用;另外如果你需要逐像素控制弧线细节、或希望减少包体积,自己绘制或换用无依赖的方案更合适。
技术一览:Vue 2 + jQuery 绘图库
- 框架:Vue 2.0+,包当前版本 1.2.3
- 绘图与动画底层:封装 jquery-circle-progress(^1.2.2),缓动函数来自 jquery-easing
- 组件源码:src/index.vue,核心是 mounted 钩子里初始化绘图库并转发事件
- 构建工具链:webpack 1 + vue-loader 8,
npm run dev本地调试、npm run build打包发布
写在最后
一句话回顾:vue-circle-progress 把"算弧线、写动画、叠百分比"这一整套流程收进一个 Vue 2 组件里,代价只是一条安装命令和几个 props。准备接入的话,先对照 README.md 里的 props 表挑出你要的参数;使用中发现 bug 或有新想法,直接到仓库提 Issue 就行。
【免费下载链接】vue-circle-progressA Vue.js component to draw animated circular progress bars项目地址: https://gitcode.com/gh_mirrors/vu/vue-circle-progress
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考