たくさんの画像があります。そのうちの 1 つにマウスを合わせると、別の div を他のそれぞれの上に表示して「暗く」します。最初のイメージは機能しているように見えますが、その後は独自の心があります。
これが私が試したことです:
html:
<div id="hp_imgs">
<div class="imggHolder">
<img src="http://9ammusic.com/images/hp/adele.jpg">
<div class="darkOver"></div>
<div class="showOver">Adele</div>
</div>
<div class="imggHolder">
<img src="http://9ammusic.com/images/hp/michael-buble.jpg">
<div class="darkOver"></div>
<div class="showOver">Michael Buble</div>
</div>
<div class="imggHolder">
<img src="http://9ammusic.com/images/hp/neil-diamond.jpg">
<div class="darkOver"></div>
<div class="showOver">Neil Diamond</div>
</div>
</div>
CSS:
#hp_imgs {
width:66%;
float:right;
display:block;
}
.imggHolder {
width:31%;
float:left;
margin:1%;
position:relative;
cursor:pointer;
}
.showOver {
width:80%;
position:absolute;
bottom:20%;
left:10%;
height:30px;
background:rgba(255, 255, 255, .8);
padding-top:10px;
text-align:center;
display:none;
border-radius:6px;
}
.darkOver {
width:100%;
height:100%;
background:rgba(0, 0, 0, .8);
position:absolute;
top:0;
left:0;
display:none;
z-index:10;
}
#hp_imgs img {
float:right;
margin:2px;
border-radius:4px;
display: block;
max-width:100%;
width:auto;
height:auto;
}
JQuery:
$('.imggHolder').mouseenter(function() {
$(this).find('.showOver').fadeIn();
$('.darkOver').fadeIn(); // show all darkOver
$(this).find('.darkOver').hide(); // hide 'this' darkOver
});
$('.imggHolder').mouseleave(function() {
$(this).find('.showOver').fadeOut();
$('.darkOver').fadeOut();
});
これを行うより良い方法はありますか?
UPDATEフェードイン/フェードアウトが終了していないことが起こっていると思います
ここにフィドルがあります