动画进度条与CSS

时间:2013-09-11 17:55:17

标签: html css

我希望进度条在2秒内从0%宽度变为50%宽度。到目前为止,这是我的代码:

<style>  
  #progressbar {
      background-color: #000000;
      border-radius: 8px;
      padding: 3px;
      width: 400px;
    }

    #progressbar div {
       background-color: #0063C6;
       height: 10px;
       border-radius: 5px;
       animation:loadbar 2s;
        -webkit-animation:loadbar 2s;
    }

    @keyframes loadbar {

    0% {
        width: 0%;
    }

    100% {
        width: 50%;
    }

    @-webkit-keyframes loadbar {

    0% {
        width: 0%;
    }

    100% {
        width: 50%;
    }

}
</style>

<div id="progressbar">
    <div></div>
</div>

但是当我打开页面时,宽度是100%而不是50%。我做错了什么?

3 个答案:

答案 0 :(得分:2)

您的加载栏动画未关闭。动画应该现在可以使用了。我还添加了一个forwards关键字,只播放动画一次。

#progressbar {
  background-color: black;
  border-radius: 8px;
  padding: 3px;
  width: 400px;
}

#progressbar div {
  background-color: #0063C6;
  height: 10px;
  border-radius: 5px;
  animation:loadbar 2s normal forwards ease-in-out;
  -webkit-animation:loadbar 2s normal forwards ease-in-out;
}

@keyframes loadbar {

  0% {
    width: 0%;
  }

  100% {
    width: 100%;
  }
}
@-webkit-keyframes loadbar {

  0% {
    width: 0%;
  }

  100% {
    width: 100%;
  }

}

答案 1 :(得分:1)

这是Fiddle

#progressbar div {
   background-color: #0063C6;
   width: 50%;
   height: 10px;
   border-radius: 5px;
   animation:loadbar 2s;
   -webkit-animation:loadbar 2s;
}

@keyframes loadbar {

  0% {
    width: 0%;
  }

  100% {
    width: 50%;
  }
}
@-webkit-keyframes loadbar {

  0% {
    width: 0%;
  }

  100% {
    width: 50%;
  }

}

答案 2 :(得分:1)

jsFiddle demo

将初始宽度设置为0%

#progressbar div {
   background-color: #0063C6;
   height: 10px;
   width:0%; /* ADD THIS <<< */
   border-radius: 5px;
   animation:loadbar 2s;
   -webkit-animation:loadbar 2s;
   -webkit-animation-fill-mode: forwards;
   animation-fill-mode: forwards;
}  

另外,我在下面添加了..

   -webkit-animation-fill-mode: forwards;
   animation-fill-mode: forwards;

如果你想让动画以前进动作结束,你需要这个...这是一个演示,展示没有它会发生什么...... jsFiddle here