我一直在为朋友和家人制作圣诞电子贺卡,其中一部分包括过渡/动画淡出。我找到了替代解决方案(比如这个:http://fvsch.com/code/transition-fade/test5.html),但我不知道为什么我现在的代码不起作用 - 做动画就像不透明一样?
代码:
#ChristmasTree{
position:absolute;
left:750px;
top:20px;
background-image:url(http://i.imgur.com/uk7Z3.png);
opacity:0.0;
animation-play-state:running;
-moz-play-state:running;
-ms-play-state:running;
-o-play-state:running;
-webkit-animation-play-state:running;
animation:treeFadeIn 3s;
-moz-animation:treeFadeIn 3s;
-ms-animation:treeFadeIn 3s;
-o-animation:treeFadeIn 3s;
-webkit-animation:treeFadeIn 3s;
}
@-moz-keyframes treeFadeIn{
from{opacity:0.0}
to{opacity:1}
}
@-webkit-keyframes treeFadeIn{
from{opacity:0.0}
to{opacity:1}
}
@-o-keyframes treeFadeIn{
from{opacity:0.0}
to{opacity:1}
}
@-ms-keyframes treeFadeIn{
from{opacity:0.0;}
to{opacity:1;}
}
答案 0 :(得分:2)
首先,当您使用图片作为背景时,您需要将height
和width
提供给div
。此外,您真的需要绝对位置吗?如果是,请确保您使用的是position: relative;
容器,此处我还设置了高度和宽度,您可以根据您使用的图像替换它们,也不需要opacity: 0.0;
, opacity: 0;
就足够了,我还为无限动画迭代添加了animation-iteration-count:infinite;
#ChristmasTree {
position:relative;
left:250px;
top:20px;
height: 200px;
width: 300px;
background-image:url(http://images.google.co.in/intl/en_ALL/images/logos/images_logo_lg.gif);
opacity:0.0;
animation-play-state:running;
-moz-play-state:running;
-ms-play-state:running;
-o-play-state:running;
-webkit-animation-play-state:running;
animation:treeFadeIn 3s;
-moz-animation:treeFadeIn 3s;
-ms-animation:treeFadeIn 3s;
-o-animation:treeFadeIn 3s;
-webkit-animation:treeFadeIn 3s;
animation-iteration-count:infinite;
}
如果你想要一个淡入淡出效果,那么你可以看一下我的另一个答案here