CSS动画进度条从下到上运行

时间:2018-02-20 14:35:38

标签: html css css3 css-animations keyframe

我有这个CSS动画,进度条从屏幕顶部运行到底部我想要反转它,所以它从屏幕底部运行到顶部。



.meter9 {
  position: absolute;
  left: 80%;
  top: 0%;
  width: 5%;
  height: 100%;
  overflow: hidden;
  background-color: transparent;
}

.meter9 span {
  display: block;
  height: 100%;
}

.progress9 {
  background-color: #d6185e;
  animation: progressBar1 3s ease-in-out;
  animation-fill-mode: forwards;
}

@keyframes progressBar1 {
  0% {
    height: 0;
  }
  100% {
    height: 100%;
  }
}

<div class="meter9">
  <span style="width:100%;"><span class="progress9"></span></span>
</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

设置:

position: absolute;
bottom: 0;
width: 100%;

到.meter9跨度,因此它将位于底部,并且它将增长到顶部。

&#13;
&#13;
.meter9 { 
  top:0%;
  left: 80%;
  width: 5%;
  height: 100%;
  position: absolute;
   overflow: hidden;
   background-color: transparent;
}

.meter9 span {
  display: block;
  height: 100%;
  position: absolute;
  bottom: 0;
  width: 100%;
}

.progress9 {
  background-color: #d6185e;
  animation: progressBar1 3s ease-in-out;
  animation-fill-mode:forwards; 
}

@keyframes progressBar1 {
  0% { height: 0; }
  100% { height: 100%; }
}
&#13;
<div class="meter9">
    <span style="width:100%;"><span class="progress9"></span></span>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

我建议使用display: flex; + align-items: flex-end;然后将项目放在容器的末尾。您还可以使用此方法轻松创建多个进度条。请参阅下面的示例。

.meter {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  display: flex; /*flexbox*/
  align-items: flex-end; /*bottom to top*/
}

.progress {
  flex: 1; /*grow*/
  animation: progressBar ease-in-out forwards;
}

.progress:nth-child(1) {
  background-color: #ff6b6b;
  animation-duration: 1s;
}

.progress:nth-child(2) {
  background-color: #51cf66;
  animation-duration: 2s;
}

.progress:nth-child(3) {
  background-color: #339af0;
  animation-duration: 3s;
}

@keyframes progressBar {
  0% {
    height: 0;
  }
  100% {
    height: 100%;
  }
}
<div class="meter">
  <span class="progress"></span>
  <span class="progress"></span>
  <span class="progress"></span>
</div>