有没有办法用CSS3 Transitions交叉淡化背景图片。
基本上需要与此视频http://youtu.be/uCcQHXeiPTY
中的“twitter hover”完全相同例如:opacity 0.5
到1
就像那样
我是CSS3中的新手:(
HTML& CSS
<div id="social-contacts">
<ul>
<li id="fb"><a href=""></a></li>
</ul>
</div>
#social-contacts{
width: 375px;
float: left;
margin-left: 50px;
margin-top: 100px;
}
#social-contacts li{
float: left;
list-style: none;
}
#social-contacts li a{
display: block;
}
#fb a{
background: url("http://athimannil.com/page/images/social-icons.png") 0 0;
width: 45px;
height: 45px;
opacity: 0.8;
-webkit-transition: all 0.5s;
-moz-transition: all 0.5s;
-o-transition: all 0.5s;
-ms-transition: all 0.5s;
transition: all 0.5s;
}
#fb a:hover{
background-position: 0 47px;
opacity: 1;
}
答案 0 :(得分:2)
如果我理解你是正确的,你只想转换不透明属性而不是背景属性,这会产生下滚效果?为此,我们需要指定应转换的属性。
在您的情况下,您已指定过渡效果应应用于all
属性,background-position: 0 47px;
和opacity: 1;
。
因此,您唯一需要做的就是将transition: all 0.5s;
更改为transition: opacity 0.5s;
。
这是DEMO
希望有所帮助!
答案 1 :(得分:1)
@keyframes
创建了它,它将为元素设置动画而不会翻转
您示例的Demo
带有无限动画的HTML
<img src="http://images.google.com/intl/en_ALL/images/logos/images_logo_lg.gif" />
CSS
img {
animation:animate_logo 5s;
-moz-animation:animate_logo 5s; /* Firefox */
-webkit-animation:animate_logo 5s; /* Safari and Chrome */
-o-animation:animate_logo 5s; /* Opera */
}
@keyframes animate_logo {
from {opacity: .5;}
to {opacity: 1;}
}
@-moz-keyframes animate_logo /* Firefox */ {
from {opacity: .5;}
to {opacity: 1;}
}
@-webkit-keyframes animate_logo /* Safari and Chrome */ {
from {opacity: .5;}
to {opacity: 1;}
}
@-o-keyframes animate_logo /* Opera */ {
from {opacity: .5;}
to {opacity: 1;}
}
关于CSS3 Keyframes的文章