html - 面对 CSS 动画的问题

标签 html css css-animations

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

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

下面是我的代码。

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 */

fiddle :http://jsfiddle.net/hg4Xy/

注意:我只提取了代码的相关部分并张贴在这里。

最佳答案

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

关于html - 面对 CSS 动画的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18394420/

相关文章:

html - 如何通过将鼠标悬停在不同的元素上来激活元素上的 CSS 动画?

html - anchor 内的 FontAwesome 图标在 chrome 上没有动画

JavaScript DOM style.backgroundColor 无法正常工作

css - "overflow-x: scroll; white-space: nowrap"从背景中溢出的父级内的 div 内容

jquery - 鼠标悬停时显示 Google 饼图

JAVA maven JSP不会加载css文件

css - 弹跳动画不起作用

javascript - 无法在以下 css 设计中做中心边缘

html - Firefox 不会用图像包裹 div

javascript - classList.add() 不会在点击事件中立即激活