【问题标题】:Facing Issues with CSS AnimationCSS动画面临的问题
【发布时间】:2013-08-23 12:14:20
【问题描述】:

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

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

以下是我的代码。

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/

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

【问题讨论】:

    标签: html css css-animations


    【解决方案1】:

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

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

    在 CSS 中的 animation 属性之后设置 animation-delay。目前它被设置在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;
    

    Working Demo

    【讨论】:

    • 哇非常感谢您的详细解释。延迟最初是用速记写的,我出于某种原因更改了它,我很傻:(
    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 2022-12-09
    • 2014-01-21
    • 1970-01-01
    相关资源
    最近更新 更多