【发布时间】:2021-11-30 03:35:26
【问题描述】:
您好,如何通过过渡元素在 CSS 中创建进度条。
.pro {
height: 2px;
width: 100vw;
transition: width 2s ease-in-out;
background-color: red;
}
【问题讨论】:
标签: css progress-bar css-transitions loading
您好,如何通过过渡元素在 CSS 中创建进度条。
.pro {
height: 2px;
width: 100vw;
transition: width 2s ease-in-out;
background-color: red;
}
【问题讨论】:
标签: css progress-bar css-transitions loading
您可以为此使用keyframes。
const btn = document.querySelector('.btn'), pro = document.querySelector('.pro')
btn.addEventListener('click', function() {
pro.classList.remove('progress');
addPro();
});
function addPro() {
setTimeout(function() {
pro.classList.add('progress');
}, 200)
}
*{
box-sizing: border-box;
}
.wrapper {
width: 95%;
margin: 50px auto;
}
.pro {
height: 2px;
width: 0;
max-width: 100%;
background-color: red;
}
.pro.progress {
animation: progress 1.75s ease-in-out forwards;
}
@keyframes progress {
from{
width: 0;
}to {
width: 100vw;
}
}
.btn {
display: inline-block;
padding: 10px 20px;
background: red;
color: #fff;
cursor: pointer;
}
<div class="wrapper">
<div class="pro progress"></div>
</div>
<div class="btn">show animation again</div>
【讨论】:
它不是进度条,而是一种进度条。
当悬停在红色药丸上时,它将扩展到90vw
.pro {
height: 20px;
width: 10vw;
border-radius: 20px;
transition: width 2s linear;
background-color: red;
}
.pro:hover {
width: 90vw
}
<div class="pro"></div>
【讨论】:
setinterval 它会在一定时间后自动运行,而动画不需要触发器但如果需要,我们可以使用一个。如果您对此持开放态度,那么也可以表明这一点