因此,我有兩個彩色圖像,當徘徊將另一個變成灰度(每個圖像的黑白副本坐在後面)通過將不透明度更改爲0。懸停在兄弟姐妹停止懸停效果
我現在試圖在懸停圖像上顯示標題(當它懸停時)。發生什麼事是,當我將鼠標懸停在圖像上時,標題顯示得很好。如果鼠標移過標題,標題就會不斷消失並重新出現,因爲我不再徘徊在圖像本身上。當標題消失時,我再次在圖像上徘徊,因此它重新出現。
我想要發生的事情是,當我將鼠標懸停在此標題上時,表現得好像我還在圖像上徘徊。我也會接受在圖像上永久顯示標題作爲替代(從長遠來看,說實話可能會更好)。
我已經查看了event.stopPropagation()方法,但似乎阻止效果向上移動DOM或某些東西到這種效果和此標題是兄弟姐妹。
代碼如下
HTML
<div id="leftbox">
<div id="upper" class="cap">
<div class="gallery">
<ul>
<li>
<a href="link.html">
<img src="images/img1_color.jpg" class="color" alt="a" id="img1>
</a>
</li>
<li>
<a href="link.html">
<img src="images/img1_dark.jpg" class="dark" alt="a">
</a>
</li>
</ul>
</div>
<div id="caption1">
</div>
</div>
<div id="lower" class="cap">
<div class="gallery">
<ul>
<li>
<a href="link2.html">
<img src="images/img2_color.jpg" class="color" alt="b" id="img2>
</a>
</li>
<li>
<a href="link2.html">
<img src="images/img2_dark.jpg" class="dark" alt="b">
</a>
</li>
</ul>
</div>
<div id="caption2">
</div>
</div>
</div>
CSS
.gallery li {
list-style-type: none;
position: relative;
}
img.dark {
position: absolute;
left: 0;
top: 0;
}
img.color {
position: absolute;
left: 0;
top: 0;
z-index: 1;
}
#leftbox {
float: left;
width: 450px;
margin: 5px 10px 0px 0px;
}
#leftbox #upper {
width: 450px;
height: 250px;
margin: 0px 0px 10px 0px;
}
#leftbox #lower {
width: 450px;
height: 250px;
margin: 0px 0px 5px 0px;
}
.gallery #capimg1{
height: 20px;
text-align: center;
color: #ffffff;
background-color: green;
z-index:2;
display: none;
position: absolute;
padding: 5px 100px 5px 100px;
}
.gallery #capimg2{
height: 20px;
text-align: center;
color: #ffffff;
background-color: green;
z-index:2;
display: none;
position: absolute;
padding: 5px 100px 5px 100px;
}
的Javascript
window["img1"] = "#img1";
window["img2"] = "#img2";
$(document).ready(function(){
$('img.color').hover(function(ev) {
if (this.id == "img1") {
$(img2).stop().animate({"opacity": "0"}, 600);
}
else if (this.id == "img2") {
$(img1).stop().animate({"opacity": "0"}, 600);
}
$('#cap'+this.id).stop().fadeIn(400).html(this.alt);
},
function reAnim() {
$([img1, img2].join(",")).stop().animate({"opacity": "1"}, "slow");
$('#cap'+this.id).css("display", "none"); }
);
});
旁邊的問題:有沒有辦法讓#capimg1和#capimg2 div的寬度與gallery div相同?如果沒有我就爲每個圖像的股利和硬編碼在寬度
感謝您的幫助
你能不能把這個的jsfiddle?我爲你開始了它,但它需要一些工作http://jsfiddle.net/SSHf9/ – user1477388 2013-03-08 20:31:03
閃爍效果的原因是因爲當您懸停標題時,圖像的原始懸停效果消失,所以標題消失,但只要標題消失,圖像再次被掀起,導致標題重新出現。這無休止地循環。要修復它在兩個元素(圖像和標題)或整個容器上放置hoer – Huangism 2013-03-08 20:39:38