JavaScript 实现简单进度条效果
本文介绍如何使用 JavaScript 和 setInterval 定时器实现一个动态宽度变化的进度条。通过控制 DOM 元素的 width 属性,结合定时器不断累加宽度值,并在达到最大宽度时清除定时器停止动画,同时同步更新显示的百分比数值。
JavaScript 实现简单进度条效果
本文分享了一段使用 JavaScript 实现进度条效果的完整代码示例,供读者参考学习。
具体效果如下图所示:

实现思路简述如下:
核心逻辑在于动态调整进度条的宽度,这需要借助 JavaScript 的间隔定时器 setInterval() 方法。
setInterval() 方法的功能是每隔指定的时间间隔调用一次指定的函数。它接收两个参数:要执行的函数和间隔时间(毫秒)。该方法返回一个定时器编号(数字),可用于后续清除定时器。
为了让进度条在达到指定宽度后停止,需要为其设定一个最大宽度值。可以通过在进度条外部包裹一个具有固定宽度的父元素来实现,从而控制进度条在父元素中的百分比宽度。在定时器回调函数中判断当前宽度是否达到指定最大值,若未达到则继续增加宽度,否则清除定时器以停止动画。为了便于理解,后续 JavaScript 代码中已添加详细注释。
1. HTML 结构部分
HTML 结构
<div id="box">
<p id="progress"></p> //不断增长的进度条
<span id=n>0%</span> //百分比的显示
</div>
<button id="btn">开 始</button> //按钮
2. CSS 样式部分
CSS 样式
<style>
#box{
width: 500px;
height: 30px;
border: black 2px solid;
position: relative;
}
#progress{
width: 0px;
height: 30px;
background: pink;
}
#btn{
width: 50px;
height: 30px;
}
#n{
position: absolute;
top: 5px;
right: 0;
}
</style>
接下来是核心逻辑:
3. JavaScript 代码部分
JavaScript 代码
<script>
//通过id获取元素
var progress = document.getElementById('progress')
var n = document.getElementById('n')
var btn = document.getElementById('btn')
//定义函数,并用元素的单击事件触发函数
btn.onclick = function(){
var w = 0 //定义变量,用来存储进度条的长度
//启动定时器
var t = setInterval(function(){
w += 10 //每隔指定时间,让进度条长度增加10
if(w >= 100){ //判断进度条的长度有没有等于或大于指定长度
w = 100
clearInterval(t) //条件成立,清除定时器
}
progress.style.width = w + '%' //给元素赋值变化后的宽度
n.innerHTML = w + '%' //同时百分比也要增长
},100) //每隔0.1秒执行一次
}
</script>
这是本人的学习笔记,整理分享出来。希望这篇博文能对正在阅读的你有所帮助。
以上就是本文的全部内容,希望对大家的学习有所启发,也欢迎大家多多支持本站。
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
