21

好的,我有这个要在 20 多岁后出现的文本。我正在使用动画延迟属性,但它不起作用。也许,我做错了什么。

请帮助我找到正确的轨道..

这是我的代码..

@import url(http://fonts.googleapis.com/css?family=Economica);
#text{
font-family:'Economica', sans-serif;
font-weight:bold;
position:absolute;
left:50%;
top:50%;
margin-left:-20px;
margin-top:-25px;
animation:fade-in 5s;
animation-delay:15s;
-webkit-animation-delay:15s;
-webkit-animation:fade-in 5s;


}

@keyframes fade-in{
from { opacity:0;}
to {opacity:1;}
}

@-webkit-keyframes fade-in{
from {opacity:0;}
to {opacity:1;}
}

这是小提琴上的链接

谢谢你为我做的一切!

编辑一:

更改动画属性的顺序,并在文本中添加 opacity:0 后,我得到以下内容

#text{
font-family:'Economica', sans-serif;
position:absolute;
left:50%;
top:50%;
opacity:0;
margin-left:-20px;
margin-top:-25px;
animation:fade-in 2s;
animation-delay:3s;
-webkit-animation:fade-in 2s;
-webkit-animation-delay:3s;
-o-animation:fade-in 2s;
-o-animation-delay:3s;

}

@keyframes fade-in{
from { opacity:0;}
to {opacity:1;}
}

@-webkit-keyframes fade-in{
from {opacity:0;}
to {opacity:1;}
}

但是,如果我在#text 中将不透明度设为0,则动画结束后文本将消失。

动画完成后如何保持文本可见?

谢谢!

4

2 回答 2

29

-webkit以错误的顺序指定了版本。-webkit-animation替换您刚刚设置的延迟规则。颠倒顺序,以便延迟到来。

-webkit-animation:fade-in 5s;
-webkit-animation-delay:15s;

如果您始终设置单个属性,则可以避免这些问题:

-webkit-animation-name: fade-in;
-webkit-animation-duration: 5s;
-webkit-animation-delay: 15s;

不要忘记也设置:

opacity: 0;

否则,文本将在动画开始之前可见,并且:

-webkit-animation-fill-mode: forwards;

以便在淡入后保留动画不透明度。

于 2013-08-18T23:23:37.017 回答
9

您需要将animation-delay规则放在速记之后,因为速记会将您的值重置为默认值0s- 或者您可以将其放在速记中:

#text {
    -moz-animation: fade-in 5s 15s;
    -webkit-animation: fade-in 5s 15s;
    animation: fade-in 5s 15s;
}

http://jsfiddle.net/wXdbL/2/(将延迟更改为 1s 所以很明显)

于 2013-08-18T23:22:30.230 回答