Chrome中的CSS动画棘手错误

时间:2014-10-29 02:33:22

标签: html css google-chrome

我有以下CSS:

@-webkit-keyframes fade-out {
    from {  opacity: 1; }
    to {  opacity: 0; }
}
@-webkit-keyframes fade-in {
    from {  opacity: 0; }
    to {  opacity: 1; }
}
.intro-text-0 {
    opacity: 0;
    -webkit-animation: fade-in 1s linear 1s,
        fade-out 1s linear 3s;
    -webkit-animation-fill-mode: forwards;
}
.intro-text-1 {
    opacity: 0;
    -webkit-animation: fade-in 1s linear 2s,
        fade-out 1s linear 4s;
    -webkit-animation-fill-mode: forwards;
}

简单的HTML代码:

<div class="intro-text-0">Hello</div>
<div class="intro-text-1">Holla</div>

当我运行时,&#34;你好&#34;在1秒和3秒内出现而不是淡出1秒,它会立即淡出。这是JSFiddle:http://jsfiddle.net/3er6y0df/

我尝试将其切换为:

.intro-text-0 {
    opacity: 0;
    -webkit-animation: fade-in 1s linear 2s,
        fade-out 1s linear 4s;
    -webkit-animation-fill-mode: forwards;
}

它完美无缺。

我必须提一下,这个错误只出现在Chrome(版本37.0.2062.120基于Debian 7.6,运行在Debian 7.7(281580)(64位))上,我在Firefox和IE11中检查出来并且没有那里的问题。

2 个答案:

答案 0 :(得分:0)

虽然它可能是另一种选择,但并不是真正的错误修正。

为什么不把它全部放在关键帧动画中,而不是在元素本身上用关键帧+动画制作元素?

@keyframes AnimateMe {
  0%   { opacity:0%; }
  80% { opacity:100%; }
  100% { opacity:0%; }
}

答案 1 :(得分:0)

我进行了一些实验,发现了一个更简单的解决方案:

-webkit-animation: fade-in 1s linear 1001ms,
    fade-out 1s linear 3s;
-webkit-animation-fill-mode: forwards;

使用1001ms代替1s(= 1000ms)将不会被常规人眼注意到:)