1

我希望进度条在 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%。我做错了什么?

4

3 回答 3

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%;
  }

}
于 2013-09-11T18:00:11.053 回答
1

这是一个小提琴

#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%;
  }

}
于 2013-09-11T17:57:48.310 回答
1

jsFiddle 演示

将初始宽度设置为 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

于 2013-09-11T18:00:27.267 回答