好的,有很多变化,所以请耐心等待。
CSS 已被精简到此(因为我们将使用 JQuery 完成所有效果):
figure {
display: block;
position: relative;
float: left;
width:200px;
height: 200px;
overflow: hidden;
margin: 20px;
}
figure img {
display: block;
max-width:200px;
}
figcaption {
position: absolute;
background: black;
background: rgba(0, 0, 0, 0.75);
color: white;
padding: 10px 20px;
width:160px;
}
这将导致标题隐藏在图像下方的站点之外,直到我们准备好显示它。
现在对于javascript:
//Thanks roXon
$(function(){
$('figure').on('mouseenter mouseleave', function( e ){
var toPos = e.type=="mouseenter" ? $('figcaption',this).innerHeight() : 0 ;
$('img', this).stop().animate({marginTop: -toPos}, 200);
});
});
这会导致任何图形在悬停时提高其下方标题的高度,从而显示标题并隐藏图像的顶部。当鼠标离开时,我们将边距设置回默认值 0。
更新小提琴:http: //jsfiddle.net/NkXCd/1/
使用 CSS3 而不是 JQuery(再次按照 roXon 的建议)
figure {
display: block;
position: relative;
float: left;
width:200px;
height: 200px;
overflow: hidden;
margin: 20px;
}
figure img {
display:block;
max-width:200px;
margin-top:0;
-webkit-transition: 0.3s;
transition: 0.3s;
}
figcaption {
position: absolute;
background: black;
background: rgba(0, 0, 0, 1);
color: white;
padding: 10px 20px;
width:160px;
}
figure:hover img{
margin-top:-40px;
}
CSS3 小提琴:http: //jsfiddle.net/NkXCd/2/