<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#box {
width: 400px;
height: 300px;
position: relative;
border: solid 1px black;
margin: 50px auto;
}
.bar {
width: 0px;
height: 30px;
background: green;
border-radius: 6px;
position: absolute;
top: 135px;
line-height: 30px;
text-align: center;
color: #fff;
}
</style>
</head>
<body>
<div id="box">
<div class="bar">
<span>0%</span>
</div>
</div>
<button οnclick="fn()">开始</button>
</body>
<script type="text/javascript">
// 1 获取节点对象
var bar = document.querySelector('.bar');
var span = bar.firstElementChild;
// 2 声明变量
var times = '';
var target = 400; // 目标
var tmpW = 0; // 实时的宽度
var speed = 10; // 步进值
// 3 开始按钮回调函数,点击开始动
function fn() {
times = setInterval(function () {
// 4 设置临时宽度
tmpW += speed;
// 5 判断是否到达目标值
if (tmpW >= target) {
// 5-1 清除定时器,将宽度设置为目标值
clearInterval(times);
bar.style.width = target + 'px';
span.innerHTML = '100%';
} else {
//6 设置div的宽度,设置span的百分比
bar.style.width = tmpW + 'px';
span.innerHTML = parseInt(tmpW / target * 100) + '%';
}
}, 30);
}
</script>
</html>