试试这个:
JS公司
let bgSize = 0;
let timer = null;
function increaseProgressBar () {
bgSize++;
const elements = document.getElementsByTagName('progress');
for(let i = 0; i < elements.length; i++) {
elements[i].value = bgSize;
}
if(bgSize < 100) {
timer = setTimeout(increaseProgressBar, 500);
}else{
clearTimeout(timer);
timer = null;
}
}
timer = setTimeout(increaseProgressBar, 500);
CSS
ul {
margin: 0;
padding: 0;
li {
border: 1px solid #000;
display: block;
list-style-type: none;
position: relative;
progress {
left: 0;
position: absolute;
right: 0;
}
progress[value] {
appearance: none;
height: 100%;
width: 100%;
z-index: -1;
-webkit-appearance: none;
&::-webkit-progress-bar {
background-color: #fff;
}
}
}
}
HTML格式
<div>some header content</div>
<ul>
<li>
<span>some stuff</span>
<input/>
<progress value="0" max="100"></progress>
<img src="https://upload.wikimedia.org/wikipedia/commons/8/8f/PlayStation_button_X.svg"/>
</li>
<li>
<span>some stuff</span>
<input/>
<progress value="0" max="100"></progress>
<img src="https://upload.wikimedia.org/wikipedia/commons/8/8f/PlayStation_button_X.svg"/>
</li>
</ul>
<div>some footer content</div>
Demo