4

我正在尝试实现 css3 动画....我计划在循环中不断改变我的目标影响,但问题是在一个循环后它以红色停止它不会进一步改变它的颜色....如何继续循环...

http://jsfiddle.net/9CZFS/

在下面提供我的代码

div
{
width:100px;
height:100px;
background:red;
animation:myfirst 5s;
-moz-animation:myfirst 5s; /* Firefox */
-webkit-animation:myfirst 5s; /* Safari and Chrome */
-o-animation:myfirst 5s; /* Opera */
}

@keyframes myfirst
{
0%   {background:red;}
25%  {background:yellow;}
50%  {background:blue;}
100% {background:green;}
}

@-moz-keyframes myfirst /* Firefox */
{
0%   {background:red;}
25%  {background:yellow;}
50%  {background:blue;}
100% {background:green;}
}

@-webkit-keyframes myfirst /* Safari and Chrome */
{
0%   {background:red;}
25%  {background:yellow;}
50%  {background:blue;}
100% {background:green;}
}

@-o-keyframes myfirst /* Opera */
{
0%   {background:red;}
25%  {background:yellow;}
50%  {background:blue;}
100% {background:green;}
}
4

2 回答 2

11

见这里:http: //jsfiddle.net/9CZFS/1/

animation:myfirst 5s linear infinite;
                        ----^-----

您需要指定动画将永远循环播放。

此外,如果您希望动画流畅,您需要让它以相同的值开始和结束:

0%,100%   {background:red;}
25%  {background:yellow;}
50%  {background:blue;}
75% {background:green;}
于 2012-12-07T18:19:10.820 回答
2

你只需要告诉 CSS 无限播放动画,它默认只播放一次。为此,您使用animation-iteration-count. 只需将以下代码添加到您的div样式声明中:

-moz-animation-iteration-count: infinite;
-webkit-animation-iteration-count: infinite;
-o-animation-iteration-count: infinite;

这是一个演示:http: //jsfiddle.net/9CZFS/3/

文档animation-iteration-counthttps ://developer.mozilla.org/en-US/docs/CSS/animation-iteration-count

注意:我的演示还更改了您的动画以在完成后平滑地返回红色:

@keyframes myfirst
{
0%   {background:red;}
25%  {background:yellow;}
50%  {background:blue;}
75% {background:green;}
100%   {background:red;}
}
于 2012-12-07T18:21:33.907 回答