3

我正在尝试创建一个几秒钟后会淡入视野的文本,但我遇到了问题。淡入视图工作正常,但文本显示后几乎立即消失。其次,我需要这个动画以延迟的方式工作,但是当我设置延迟时,它似乎没有任何区别。延迟早些时候工作正常。

为什么动画在显示后不久就消失了?我应该怎么做才能正确显示它?为什么延迟现在不起作用?请帮我。解决方案必须很简单,但我可能没有沿着正确的路线思考。

以下是我的代码。

HTML:

<div id="container" class="container">
    <span class="fadeText">Sample Text</span>
</div>

CSS:

.container{
    margin: 5% auto;
    position: relative;
    text-align: center;
}
.fadeText{
    color: #5B83AD;
    font-weight: bold;
    font-size: 125%;
    border-radius: 4px;
    border: 1px solid #5B83AD;
    padding: 4px;
    text-align: center;
    opacity: 0;
    -webkit-animation-delay: 5s;
    -moz-animation-delay: 5s;
    animation-delay: 5s;
    -webkit-animation: fadeIn 5s ease-in;
    -moz-animation: fadeIn 5s ease-in;
    animation: fadeIn 5s ease-in;
}

/* Animations */
@-moz-keyframes fadeIn{
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

@-webkit-keyframes fadeIn{
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

@keyframes fadeIn{
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
/* End of Animations */

小提琴:http: //jsfiddle.net/hg4Xy/

注意:我只提取了代码的相关部分并发布在此处。

4

1 回答 1

2

设置animation-fill-modeforwardsopacity: 0目前,您的动画执行良好,但在执行最后一个关键帧后将恢复其原始状态(即)。将填充模式设置为forwards将使文本保留最后一个关键帧(即opacity: 1)设置的不透明度。或者,您可以opacity: 0从 中删除该属性.fadeText

-webkit-animation-fill-mode: forwards;
-moz-animation-fill-mode: forwards;
animation-fill-mode: forwards; /* always use standard un-prefixed version as last */

在 CSS 中设置animation-delayafter属性。animation目前它被设置在animation属性之前,并且由于animation速记属性没有指定任何延迟,它被覆盖。或者,修改速记属性,如下所示。

-webkit-animation: fadeIn 5s ease-in;
-moz-animation: fadeIn 5s ease-in;
animation: fadeIn 5s ease-in;
/* set delay after animation */
-webkit-animation-delay: 5s;
-moz-animation-delay: 5s;
animation-delay: 5s;

/* addresses both items. 4th parameter is for delay and 5th is for fill mode */
-webkit-animation: fadeIn 5s ease-in 5s forwards;
-moz-animation: fadeIn 5s ease-in 5s forwards;
animation: fadeIn 5s ease-in 5s forwards;

工作演示

于 2013-08-23T03:57:30.617 回答