我希望进度条在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%。我做错了什么?
答案 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)
将初始宽度设置为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