转换不透明度以淡入动画

时间:2012-12-24 11:39:31

标签: css css3 css-transitions

我一直在为朋友和家人制作圣诞电子贺卡,其中一部分包括过渡/动画淡出。我找到了替代解决方案(比如这个: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;}
}

1 个答案:

答案 0 :(得分:2)

首先,当您使用图片作为背景时,您需要将heightwidth提供给div。此外,您真的需要绝对位置吗?如果是,请确保您使用的是position: relative;容器,此处我还设置了高度和宽度,您可以根据您使用的图像替换它们,也不需要opacity: 0.0;opacity: 0;就足够了,我还为无限动画迭代添加了animation-iteration-count:infinite;

Demo

#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