Bootstrap 进度条学习笔记

Bootstrap 进度条是用于展示加载进度的UI组件,可以通过不同的样式和状态来实现不同的效果。

基本用法

使用 Bootstrap 进度条,需要先引入 Bootstrap 的 CSS 文件和 JS 文件:

htmlCopy Code
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.5.3/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/4.5.3/js/bootstrap.min.js"></script>

然后在HTML文档中添加进度条的HTML代码即可:

htmlCopy Code
<div class="progress"> <div class="progress-bar" style="width: 25%" role="progressbar" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div> </div>

其中,progress 类是必须的,用于创建进度条容器。progress-bar 类是用于表示进度条本身,并且需要设置 style 属性来指定宽度,表示当前的进度。当然,也可以使用 JavaScript 来动态改变进度条的宽度。

不同的样式

Bootstrap 进度条提供了多种不同的样式,可以通过添加不同的类来实现。

Success 样式

成功样式的进度条通常用于表示任务已经完成。

htmlCopy Code
<div class="progress"> <div class="progress-bar bg-success" style="width: 50%" role="progressbar" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div> </div>

Info 样式

信息样式的进度条通常用于表示任务正在进行中。

htmlCopy Code
<div class="progress"> <div class="progress-bar bg-info" style="width: 75%" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100"></div> </div>

Warning 样式

警告样式的进度条通常用于表示任务已经超时或存在异常情况。

htmlCopy Code
<div class="progress"> <div class="progress-bar bg-warning" style="width: 90%" role="progressbar" aria-valuenow="90" aria-valuemin="0" aria-valuemax="100"></div> </div>

Danger 样式

危险样式的进度条通常用于表示任务失败或出现重大错误。

htmlCopy Code
<div class="progress"> <div class="progress-bar bg-danger" style="width: 10%" role="progressbar" aria-valuenow="10" aria-valuemin="0" aria-valuemax="100"></div> </div>

实例演示

下面是一个基于 Bootstrap 进度条实现的文件上传示例,演示了如何使用进度条来展示上传进度:

htmlCopy Code
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Bootstrap 进度条学习笔记</title> <!-- 引入 Bootstrap CSS 文件和 JS 文件 --> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.5.3/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/4.5.3/js/bootstrap.min.js"></script> </head> <body> <!-- 文件上传表单 --> <form id="file-upload-form" action="#" method="post" enctype="multipart/form-data"> <div class="form-group"> <label for="file-input">选择文件:</label> <input type="file" name="file" id="file-input"> <small class="form-text text-muted">支持 .jpg、.jpeg、.png、.gif 格式的图片文件。</small> </div> <button type="submit" class="btn btn-primary">上传</button> </form> <!-- 上传进度条 --> <div class="progress" style="display: none"> <div class="progress-bar progress-bar-striped progress-bar-animated bg-info" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div> </div> <script> $(function() { // 当表单被提交时,显示进度条 $('#file-upload-form').on('submit', function(e) { e.preventDefault(); $('.progress').show(); // 模拟上传过程 var progress = 0; var interval = setInterval(function() { progress += Math.floor(Math.random() * 10); if (progress > 100) progress = 100; $('.progress-bar').attr('aria-valuenow', progress).css('width', progress + '%'); if (progress === 100) clearInterval(interval); }, 1000); }); }); </script> </body> </html>

在上面的示例中,我们通过监听表单的提交事件来模拟文件上传过程,并使用进度条来展示上传进度。上传进度条的初始状态是隐藏的,当用户点击“上传”按钮时,才会显示出来。在上传的过程中,我们通过 setInterval 函数定期更新进度条的状态,并且在完成上传后停止更新。