html - 交叉淡入淡出动画(关键帧图像持续时间)

标签 html css css-animations keyframe

这里我有一些在两个图像之间转换的交叉淡入淡出图像动画的示例 css 代码,但是我正在努力弄清楚如何将图像持续时间的长度更改为大约 10 秒而不是即时转换。动画长度很好,我将其设置为 3 秒。我只想让图像在过渡到另一幅图像之前停留 10 秒。据我了解,您似乎必须更改具有不透明度和百分比的代码,但我无法弄清楚此 css 的语法。任何帮助,将不胜感激。这是我目前拥有的。这里还有一个 fiddle如果有帮助。

这是我的 CSS:

/*INDEX PAGE CSS*/
 #index_banner {
    height:360px;
    position:relative;
    margin:0 auto;
}
#index_banner img {
    position:absolute;
    -webkit-animation: cf4FadeInOut 3s;
    animation: cf4FadeInOut 3s;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
}
@-webkit-keyframes cf4FadeInOut {
    0% {
        opacity:1;
    }
    50% {
        opacity:0;
    }
    100% {
        opacity:1;
    }
}
@keyframes cf4FadeInOut {
    0% {
        opacity:1;
    }
    50% {
        opacity:0;
    }
    100% {
        opacity:1;
    }
}
#index_banner img:nth-child(odd) {
    -webkit-animation-delay: 4s;
    animation-delay: 4s;
}
#welcome_text {
    padding-top: 20px;
    text-align: center;
    line-height: 2em;
}
#trailer_title {
    text-align: center;
}
#trailer_video {
    padding-top: 10px;
    text-align: center;
    padding-bottom:20px;
}

这是我的 HTML:

<div id="index_banner">
                                         <img class="bottom" src="images/SPAWN IMAGE.png" alt="INDEX BANNER">
                                         <img class="top" src="images/SURVIVAL IMAGE - GAMEMODES.png" alt="INDEX BANNER 2">
                                     </div>

最佳答案

更新版本 检查这个输出结果https://jsfiddle.net/5ac3cLtv/5/

我做了以下事情以获得预期的结果。

1) 为图像设置position:absolute;

2) 将动画时间增加到 15 秒

3) 包括animation-timing-function:ease-in-out;,它将为我们的动画开始和结束带来平滑度。

4) 将 animation-delay:8s 赋给 #index_banner img:nth-child(odd)

5) 更改关键帧如下:

@keyframes cf4FadeInOut {

   0% {
        opacity:0;
    }
    30% {
        opacity:0; 
    }
    40%{
        opacity:1; 
    }
    75%{
        opacity:1; 
    }
    85%{
        opacity:1; 
    }

    100% {
        opacity:0;
    }

}

关键帧说明

关键帧所做的就是在 4.5 秒后淡入图像(即 15 秒的 30%)。图像在那里停留大约 4-5 秒,然后开始慢慢淡出。

为什么 INDEX BANNER 1 出现在开头?

因为我给它加了animation-delay。所以它将在 8 秒后开始淡出。因为我们的动画从 opacity:0 开始。

关于html - 交叉淡入淡出动画(关键帧图像持续时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28929233/

相关文章:

带有 HTML 联系表单的 PHPMailer

javascript - 从 Html View 更新触发更新到动态 View ,将其保存到 LocalStorage loki js

css - 少守卫 : positive percentage

css - 右对齐下拉菜单中的指针

html - 在 css 中管理文本和图像

css - Webkit 动画和转换

html - 将 View div 右对齐

html - 具有填充模式的 CSS 动画包括过渡在 Firefox 中无法正常工作

javascript - 表单提交后隐藏动画

html - 为什么 ':last-child'会改变样式的优先级?