在网页开发中,进度条往往用于显示用户提交的表单信息的处理进度,或者显示网页加载的进度。其中,CSS进度条主要通过设置一个宽度不断增加的 CSS 动画来实现,而 JS 进度条则通过 JavaScript 计算任务完成的比例并实时更新进度条的宽度。
下面是一个 CSS 进度条的示例代码:
.progress-bar { width: 100%; background-color: #f2f2f2; } .progress { background-color: #1366d2; height: 10px; width: 0%; transition: width 0.5s ease-in-out; }
可以发现,上述代码中,大家创建了一个进度条容器 progress-bar,用于包裹进度条。而实际的进度条则是具有宽度动画效果的元素 progress,通过设置宽度从 0% 至 100% 的 CSS transition 来实现关于进度条宽度的不断变化。
而 JS 进度条的实现则相对麻烦一些:
var progressBar = document.getElementById("progress-bar"); var progress = document.getElementById("progress"); function updateProgressBar(progress) { progressBar.style.display = "block"; progress = Math.min(progress, 1); // limit progress to 100% var width = (progress * progressBar.clientWidth); width = Math.round(width); progress.style.width = width + "px"; if (progress == 1) { progressBar.style.display = "none"; } } updateProgressBar(0.5); // 更新进度条到50%
以上代码是一个基础的 JS 进度条实现代码。其中,大家首先要获取到进度条容器和进度条实际元素,然后使用函数 updateProgressBar() 引入任务完成比例参数,并进行更新进度条的操作。更新进度条的实际操作则是通过计算新的元素宽度并重新赋值来实现。