到目前为止,我已经有了这个代码透明度上一个div悬停
,但我想淡出,以便只留下文字中可见的图像。 我是否需要更改JavaScript或编写新的CSS分区?
$('.text').hide().removeClass('text').addClass('text-js');
$('.thumb').hover(function(){
$(this).find('.text-js').fadeToggle();
});
到目前为止,我已经有了这个代码透明度上一个div悬停
,但我想淡出,以便只留下文字中可见的图像。 我是否需要更改JavaScript或编写新的CSS分区?
$('.text').hide().removeClass('text').addClass('text-js');
$('.thumb').hover(function(){
$(this).find('.text-js').fadeToggle();
});
如果你想淡入文字和淡出图像,只需增加一个行:
$('.text').hide().removeClass('text').addClass('text-js');
$('.thumb').hover(function(){
$(this).find('.text-js').fadeToggle();
$(this).children("img").fadeToggle();
});
$(this).find('img').fadeToggle();
这是你在找什么?
$('.thumb').hover(function(){
$(this)
.find('.text-js')
.fadeToggle()
.end()
.find('img')
.fadeToggle();
});
无JS或其他HTML需要。
.thumb img {
-moz-transition: opacity .8s;
-webkit-transition: opacity .8s;
transition: opacity .8s;
}
.thumb:hover img {
opacity: 0;
}
这里是CSS3过渡的解决方案:
CSS
.thumb .text {
display: block;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
background: #999;
background: rgba(0, 0, 0, 0.3);
text-align: center;
-webkit-transition:opacity .5s ease;
-moz-transition:opacity .5s ease;
transition:opacity .5s ease;
opacity:0;
}
.thumb:hover .text {
opacity:1;
}
.thumb img {
opacity:1;
-webkit-transition:opacity .5s ease;
-moz-transition:opacity .5s ease;
transition:opacity .5s ease;
}
.thumb:hover img {
opacity:0;
}
支持
现在,对CSS3转换的支持相当不错,所有主流浏览器(Safari,Chrome,Opera,Firefox)的最新版本都支持转换。另一方面IE只支持它从版本10.转换是很好的,虽然它们不会崩溃,并且当某些东西不支持它时会烧掉。元素的不透明度将会改变,不会有任何过渡。
参考
+1可能是值得注意的唯一答案:D – fresskoma 2013-03-20 13:22:11
太好了,非常感谢,很完美,同时也是最简单的方法。 – 2013-03-20 13:28:58
秒:) – Archer 2013-03-20 13:19:03
完美,谢谢。例如,我可以为这个淡出添加一个时间,例如需要更长的时间,例如5秒? – 2013-03-20 13:19:29
@HristianIvanov fadeToggle(5000)//毫秒 – 2013-03-20 13:22:08