1、使用keyframes实现
// html结构
<div class="progress">
<div class="progress-bar">
<div class="animate-bar"></div>
</div>
</div>
// CSS部分
.progress {
position: relative;
width: auto;
height: 8px;
margin: 0 auto;
border-radius: 8px;
background-color: #ccc;
}
.progress .progress-bar {
position: absolute;
left: 0;
top: 0;
width: 20%;
height: 8px;
border-radius: 8px;
background-color: #2d8cf0;
}
.progress .progress-bar .animate-bar {
position: absolute;
left: 0;
top: 0;
width: 0%;
height: 8px;
border-radius: 8px;
opacity: 0;
background-color: #fff;
-webkit-animation: progress-active 2s ease-in-out infinite;
animation: progress-active 2s ease-in-out infinite;
}
@-webkit-keyframes progress-active {
0% {
opacity: .3;
width: 0;
}
to {
opacity: 0;
width: 100%;
}
}
@keyframes progress-active {
0% {
opacity: .3;
width: 0;
}
to {
opacity: 0;
width: 100%;
}
}
效果图如下:[这是一个动态的进度条]
2、静态背景渐变滚动条
// html结构
<div class="progress">
<div class="progress-bar">
<div class="progress-value">80%</div>
</div>
</div>
// CSS部分
.progress {
position: relative;
width: 200px;
height: 20px;
background: #262626;
border-radius: 20px;
}
.progress-bar {
position: absolute;
left: 0;
top: 0;
width: 80%;
height: 20px;
line-height: 20px;
border-radius: 20px;
background: linear-gradient(to right, #da81a1 35%, #7aa4c8 68%);
font-size: 12px;
color: #fff;
text-align: center;
-webkit-transition: 80% .6s ease;
-o-transition: 80% .6s ease;
transition: 80% .6s ease;
animation: animate-positive 2s;
}
@-webkit-keyframes animate-positive{
0% { width: 0%; }
}
@keyframes animate-positive{
0% { width: 0%; }
}
效果图如下: