这几乎是他们所拥有的一个确切的例子。正如我之前在评论中指出的,请仔细注意 css 以及元素在布局中的位置。
另外:滚动到此答案的底部以获得纯 CSS 解决方案(节省您的时间和空间)
HTML
<div id="parent" class="parent">
<img id="background" class="background" src="http://www.findawayworld.com/scraps/icecream1-310x180.jpg">
<div id="child" class="child">
<h3>Some Title Here</h3>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi posuere rutrum mollis. Vestibulum iaculis felis a felis interdum dictum. Duis quam ipsum, dictum in mollis nec, bibendum vel mauris.
</p>
</div>
</div>
CSS
.parent {
-moz-border-radius: .5em;
border-radius: .5em;
border: 3px groove #33FFFF;
height: 180px;
margin: 1em auto;
position: relative;
width: 310px;
}
.background {
left: 0px;
height: 100%;
position: absolute;
top: 0px;
width: 100%;
z-index: -1;
}
.child {
background: #fff;
display: none;
height: 100%;
width: 100%;
z-index: 1;
}
.child h3 {
font-size: 1.3em;
text-align: center;
}
.child p {
margin: 1em auto;
padding: 0px 1em;
text-align: justify;
}
jQuery
$(function() {
$("#parent").hover(function(eIn) {
$("#child").stop(true, true).fadeIn("slow");
},
function(eOut) {
$("#child").stop(true, true).fadeOut("slow");
});
});
然而
请记住,这种确切的效果可以在 css 中完全实现,从而为您的 javascript 创建一个更小的脚注。我将尝试尽快获得一个 CSS2 和 CSS3 示例。
纯 CSS 解决方案
我为这个解决方案使用了相同的 jsFiddle(我只是没有将修改设置为基础,所以你会在修改 22 下找到它)。所以有一行异常 css,如下面的 css 中所述。我还注释掉了 JavaScript 以表明它是一个纯 CSS 解决方案,甚至应该具有一些 IE 兼容性。
CSS(*仅更改*)
/* Below used for pure CSS solution */
.child {
display: block !important; /* simply to override previous css without making change for looking at js version */
opacity: 0;
transition: opacity 1s ease-in-out;
-moz-transition: opacity 1s ease-in-out;
-webkit-transition: opacity 1s ease-in-out;
}
.parent:hover .child {
opacity: 1;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=100)"; /* IE 8 */
filter:alpha(opacity=100); /* IE 4, 5, 6 and 7 */
}
/* End Solution */