我提供了一个JSFiddle:https://jsfiddle.net/om83Ljtm/
它包含div
,img
和span
元素。 img
充当div
的背景图片。我没有使用CSS background
- 属性作为背景图像,因为我想在悬停div
时更改不透明度。 span
包含与背景图片重叠的文字。当悬停div
时,我想更改图像的不透明度。但是,当鼠标悬停文本(span
)时,img
的不透明度会变回初始值0.6。但是当我将鼠标悬停在文本上时,我希望图像不会(!)改变其不透明度。如何实现这一目标?
总结一下:在JSFiddle中,如果我将鼠标悬停在div
上,则不透明度会更改为1.即使我将鼠标悬停在span
中的文本上,也应该保留。这还不行。
答案 0 :(得分:2)
使用.event:hover img
代替.event img:hover
.event {
width: 200px;
position: relative;
border: 1px solid #dddddd;
height: auto;
}
.event .titel {
float:left;
font-size: 20px;
background-color:white;
padding:3px;
position:absolute;
top:50px;
left:5px;
}
.event img {
opacity: 0.6;
width: 100%;
}
.event img {
-webkit-transition: opacity 1s ease-in-out;
-moz-transition: opacity 1s ease-in-out;
-o-transition: opacity 1s ease-in-out;
transition: opacity 1s ease-in-out;
}
.event:hover img {
opacity: 1;
}

<div class="event">
<img src="https://lh4.ggpht.com/wKrDLLmmxjfRG2-E-k5L5BUuHWpCOe4lWRF7oVs1Gzdn5e5yvr8fj-ORTlBF43U47yI=w300">
<span class="titel">text text text text text text text text text </span>
</div>
&#13;
答案 1 :(得分:1)
你可以通过将鼠标悬停在div而不是img来实现这一点:https://jsfiddle.net/om83Ljtm/2/
.event:hover img {
opacity: 1;
}
答案 2 :(得分:1)
就像这样;)
$("#images-content").on('load', function(){
var width = this.naturalWidth;
var height = this.naturalHeight;
});
.event {
width: 200px;
position: relative;
border: 1px solid #dddddd;
height: auto;
}
.event .titel {
float:left;
font-size: 20px;
background-color:white;
padding:3px;
position:absolute;
top:50px;
left:5px;
}
.event img {
opacity: 0.6;
width: 100%;
}
.event img {
-webkit-transition: opacity 1s ease-in-out;
-moz-transition: opacity 1s ease-in-out;
-o-transition: opacity 1s ease-in-out;
transition: opacity 1s ease-in-out;
}
.event:hover img { /* Just change this */
opacity: 1;
}