CSS动画延迟不起作用

时间:2013-08-16 04:34:34

标签: css css3 css-animations

尝试淡入一个div .... 7秒后,淡入另一个div。我不能,因为我的生活,弄清楚为什么它不起作用。动画本身可以工作(fadein / fadeout动画),但我需要“go”div才能在一定的秒数后淡入淡出。任何人都知道如何正确地做到这一点?

.coming{
    width:320px;
    height:auto;
    position:absolute;
    top:0px;
    left:0px;
    margin-left:10px;
    background:#FFF;
    color:#000;
    font-family: Sans-Serif;
    font-size:24px;
    border-radius: 10px 10px 10px 10px;
    -moz-box-shadow: 0px 0px 0px #000;
    -webkit-box-shadow: 0px 0px 0px #000;
    box-shadow: 1px 1px 5px #222;
    padding:2px 20px;

    }

#people .coming{
    -moz-animation: fadein 3s ease-in; /* Firefox */
    -webkit-animation: fadein 3s ease-in; /* Safari and Chrome */
    -o-animation: fadein 3s ease-in; /* Opera */
    animation: fadein 3s ease-in;
}


.going{
    width:320px;
    height:auto;
    position:absolute;
    top:120px;
    left:0px;
    margin-left:10px;
    background:#FFF;
    color:#000;
    font-family: Sans-Serif;
    font-size:24px;
    border-radius: 10px 10px 10px 10px;
    -moz-box-shadow: 0px 0px 0px #000;
    -webkit-box-shadow: 0px 0px 0px #000;
    box-shadow: 1px 1px 5px #222;
    padding:2px 20px;
}


#people .going{
    animation-delay: 7s;
    -moz-animation: fadein 3s ease-in; /* Firefox */
    -webkit-animation: fadein 3s ease-in; /* Safari and Chrome */
    -o-animation: fadein 3s ease-in; /* Opera */
    animation: fadein 3s ease-in;

}

谢谢。小提琴在这里:

http://jsfiddle.net/yZ4va/1/

3 个答案:

答案 0 :(得分:15)

请在.going课程中使用以下内容。动画属性中的forwards将确保在执行完最后一个关键帧后,该块不会返回opacity:0(不可见)。

#people .going{
    opacity: 0;
    -moz-animation: fadein 3s ease-in 7s forwards; /* Firefox */
    -webkit-animation: fadein 3s ease-in 7s forwards; /* Safari and Chrome */
    -o-animation: fadein 3s ease-in 7s forwards; /* Opera */
    animation: fadein 3s ease-in 7s forwards;
}

以上是做动画延迟的简写。

Fiddle Demo

答案 1 :(得分:6)

问题在于订单和缺少的浏览器特定名称:

需要在更一般的行之后指定任何特定属性,否则将覆盖它们。

您还错过了正在进行的div上的初始opacity: 0(它开始可见)

Working fiddle

感谢@Harry& @ VikasGhodke指出了

forwards

您可以通过在速记语法中包含动画延迟来避免整个特定样式覆盖速记设置问题,如下所示:

Fiddle

#people .going{
    -moz-animation: fadein 3s ease-in forwards; /* Firefox */
    -webkit-animation: fadein 3s ease-in forwards; /* Safari and Chrome */
    -o-animation: fadein 3s ease-in forwards; /* Opera */
    animation: fadein 3s ease-in forwards;
    -moz-animation-delay: 7s;
    -webkit-animation-delay: 7s;
    -o-animation-delay: 7s;
    animation-delay: 7s;
}

答案 2 :(得分:1)

一旦你设置它就会超时延迟..所以在动画后指定你的延迟..然后再出现一个问题。先出现,然后在延迟后它会消失,然后显示哪个是不是一个好习惯..

查看此 fiddle

#people .going{
    -moz-animation: fadein 3s ease-in; /* Firefox */
    -webkit-animation: fadein 3s ease-in; /* Safari and Chrome */
    -o-animation: fadein 3s ease-in; /* Opera */
    animation: fadein 3s ease-in;
    -webkit-animation-delay: 7s;
    animation-delay: 7s;
}

另一个选择是玩定时和定时功能..

查看此 fiddle

.coming{
    -moz-animation: fadein 3s ease-in; /* Firefox */
    -webkit-animation: fadein 3s ease-in; /* Safari and Chrome */
    -o-animation: fadein 3s ease-in; /* Opera */
    animation: fadein 3s ease-in;
    }

.going{
    animation: fadein 10s ease-in-out;
    -moz-animation: fadein 10s ease-in-out; /* Firefox */
    -webkit-animation: fadein 10s ease-in-out; /* Safari and Chrome */
    -o-animation: fadein 10s ease-in-out; /* Opera */
}