【progressBar-js】优雅的 前端进度条 构建!

progressBar-js

JS 前端进度条小工具 您可以通过此工具来构建一个有效的工具条,接下来就是一个示例!

使用示例

引入 progressBar-js

直接在这里将 css 和 js 文件引入进来就算是成功导入了哦!!!


<link href="https://www.lingyuzhao.top/css/progressBar.css" rel="stylesheet">
<script src="https://www.lingyuzhao.top/js/progressBar.min.js"></script>

基本使用示例

使用数值渲染进度条
  // 实例化一个进度条对象,在这里我们传递了两个参数,第一个参数是进度条元素,第二个参数是回调函数,这个回调函数会在进度条的进度发生变化时调用。
const progressBar = new ProgressBar(document.querySelector(".progress-bar"), (now, max) => document.querySelector(".p").innerText = `进度为:${(now / max * 100).toFixed(2)}%`);
// 调用setProgressByValue方法,第一个参数是进度条的进度,第二个参数是进度条的进度变化时间,第三个参数是进度条的颜色,第四个参数是进度条的进度即将到达最大值时的颜色。
progressBar.setProgressByValue(100, 1000, 'linear-gradient(to right, rgba(255, 255, 255, 0.5), #8c00ff)', 'linear-gradient(to right, rgba(255, 255, 255, 0.5), #0f0)');
使用进度渲染进度条
  // 实例化一个进度条对象,在这里我们传递了两个参数,第一个参数是进度条元素,第二个参数是回调函数,这个回调函数会在进度条的进度发生变化时调用。
const progressBar = new ProgressBar(document.querySelector(".progress-bar"), (now, max) => document.querySelector(".p").innerText = `进度为:${(now / max * 100).toFixed(2)}%`);
// 使用此函数可以直接设置进度条的进度,不需要设置最大值,第一个参数是进度值,第二个参数是进度条的背景颜色,第三个参数是进度条的填充颜色。
progressBar.setProgress(61.012, 'linear-gradient(to right, rgba(255, 255, 255, 0.5), #8c00ff)', 'linear-gradient(to right, rgba(255, 255, 255, 0.5), #0f0)');

实时渲染进度条

  // 实例化一个进度条对象,在这里我们传递了两个参数,第一个参数是进度条元素,第二个参数是回调函数,这个回调函数会在进度条的进度发生变化时调用。
const progressBar = new ProgressBar(document.querySelector(".progress-bar"), (now, max) => document.querySelector(".p").innerText = `进度为:${(now / max * 100).toFixed(2)}%`);

// 我们可以在一个定时器中设置进度条的进度,实现实时的渲染
setInterval(() => {
    progressBar.setProgressByValue(Math.random() * 1000, 1000, 'linear-gradient(to right, rgba(255, 255, 255, 0.5), #8c00ff)', 'linear-gradient(to right, rgba(255, 255, 255, 0.5), #0f0)');
}, 1000);

需要使用到的类名

此库将会使用到一些类名,下表中“是否冲突” 列如果为 yes,则您尽量避免使用对应的类名,否则可能会造成影响。

类名是否冲突说明
progress-barno此类名用来标识一个进度条元素,被此类名的元素将会被渲染成进度条,您可以在页面中添加多个进度条元素,也可以尝试修改 css 样式,但不一定会生效。
progress-bar-fillyes此类名用来标识进度条的填充元素,被此类名的元素将会被渲染成进度条的填充元素。您最好避免使用此类名,否则可能会造成影响。

此库的示例界面

您可以在 index.html 文件中查看到对应的示例页面,其中演示了一个基本的使用,下面是界面的图!

在这里插入图片描述

更多信息

<think>嗯,用户想要查找关于前端实现进度条的教程和示例代码。我需要先回顾一下相关的知识,然后结合提供的引用内容来组织回答。 首先,用户提到的引用中有几个相关的资料。引用[2]提到了Nprogress,这是一个页面加载进度条的库,使用起来比较简单。引用[3]是关于Springboot集成WebSocket实现实时进度条的,这可能涉及到后端和前端的配合。另外,用户可能还需要基础的HTML/CSS/JavaScript实现方法,虽然引用中没有直接提到,但作为常见的方法应该包含进去。 接下来,我应该分步骤来回答。首先介绍基础的HTML/CSS进度条,因为这是最基础的方式,适合新手。然后提到使用Nprogress这样的库来简化工作,特别是针对页面加载或路由切换的场景。接着,如果有涉及后端通信的情况,比如文件上传或长时间任务,可能需要使用WebSocket或者AJAX轮询来实时更新进度条,这里可以结合引用[3]的WebSocket示例。 需要注意用户可能需要的不同场景:静态进度条、动态加载进度条、与后端交互的实时进度条。每个部分给出示例代码,并确保代码正确,比如使用正确的HTML结构和JavaScript函数。同时,要提到如何根据实际情况调整,比如WebSocket的消息处理。 另外,用户可能关心如何将这些技术应用到实际项目中,比如文件上传时的进度显示,或者页面跳转时的加载反馈。需要确保示例代码简洁易懂,并给出关键注释,解释各部分的作用。 最后,生成的相关问题需要覆盖不同方面,比如性能优化、样式定制、与后端集成等,这样用户可以根据需求进一步探索。还要检查引用是否正确,比如引用[2]和[3]对应的内容是否准确,并确保没有遗漏重要的实现方法。</think>### 前端实现进度条的常见方法及示例 #### 1. 基础HTML/CSS实现静态进度条 ```html <div class="progress-bar"> <div class="progress" style="width: 30%"></div> </div> <style> .progress-bar { width: 300px; height: 20px; background: #eee; border-radius: 10px; overflow: hidden; } .progress { height: 100%; background: #4CAF50; transition: width 0.3s ease; } </style> ``` #### 2. 使用NProgress实现页面加载进度条[^2] ```javascript // 安装:npm install nprogress import NProgress from 'nprogress'; import 'nprogress/nprogress.css'; // 路由切换时使用(如Vue Router) router.beforeEach((to, from, next) => { NProgress.start(); next(); }); router.afterEach(() => { NProgress.done(); }); ``` #### 3. 文件上传实时进度条(XMLHttpRequest) ```javascript const xhr = new XMLHttpRequest(); xhr.upload.addEventListener('progress', (e) => { if (e.lengthComputable) { const percent = (e.loaded / e.total) * 100; document.querySelector('.progress').style.width = percent + '%'; } }); ``` #### 4. WebSocket实时进度集成[^3] ```javascript // 前端WebSocket连接 const ws = new WebSocket('ws://localhost:8080/progress'); ws.onmessage = (event) => { const data = JSON.parse(event.data); document.getElementById('progress').style.width = data.progress + '%'; }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值