【发布时间】:2015-07-31 23:59:43
【问题描述】:
我有以下 html 和 CSS 代码来应用动画,以便徽标图像从 0 到 1 的不透明度逐渐消失。这在最新的 Chrome 浏览器中效果很好,但在最新的 FireFox 或 IE 11 中却不行。
我已通过“logo-new”类确保徽标图像的初始不透明度为 0,因此当动画发生时,它从 0 不透明度开始。
问题:如何使这种类型的动画在 FireFox 和 IE 11 中工作?
HTML
<div id="newlogo" class="logo-new animate"></div>
CSS
.logo-new {
background-image: url("../logo.png");
background-repeat: no-repeat;
height: 95px;
opacity: 0;
width: 479px;
}
.animate {
-moz-animation: fadeIn 1s ease-in;
-webkit-animation: fadeIn 1s ease-in;
animation: fadeIn ease-in 1s 1;
-moz-animation-delay: 1s;
-webkit-animation-delay: 1s;
animation-delay: 1s;
-moz-animation-fill-mode: forwards;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
@-webkit-keyframes fadeIn {
from {opacity: 0;}
to {opacity: 1;}
}
@keyframes fadeOut {
from {opacity: 1;}
to {opacity: .5;}
}
更新 1
正如 'uʍopǝpısdn' 在 cmets 中提到的,我需要为 mozilla 包含关键帧才能在 FireFox 中工作。然而,非常令人惊讶的是,对于 IE 11,我必须包含一个没有任何浏览器前缀的关键帧元素,并且它不必位于 CSS 的顶部。
.logo-new {
background-image: url("../logo.png");
background-repeat: no-repeat;
height: 95px;
opacity: 0;
width: 479px;
}
.animate {
-moz-animation: fadeIn 1s ease-in;
-o-animation: fadeIn 1s ease-in;
-webkit-animation: fadeIn 1s ease-in;
animation: fadeIn ease-in 1s 1;
-moz-animation-delay: 1s;
-o-animation-delay: 1s;
-webkit-animation-delay: 1s;
animation-delay: 1s;
-moz-animation-fill-mode: forwards;
-o-animation-fill-mode: forwards;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
//IE 11 Fix for animation. Exclude browser prefix !!!!!
@keyframes fadeIn {
from {opacity: 0;}
to {opacity: 1;}
}
@-webkit-keyframes fadeIn {
from {opacity: 0;}
to {opacity: 1;}
}
//Fix for animation to work in FireFox. Include a 'moz' prefix
@-moz-keyframes fadeIn {
from {opacity: 0;}
to {opacity: 1;}
}
【问题讨论】:
-
你需要为 FF 添加一个@-moz-keyframes 版本
-
好的。伟大的。让我检查一下。
-
这适用于 FireFox,但不适用于 IE 11。
-
另外,你能把这个作为答案发布吗?
-
这不是一个好的答案,因为它不能解决您的 IE11 问题。
标签: css css-animations