将鼠标悬停在 div 上的图片和文字效果
Hover effect over div with image and text
我提供一个 JSFiddle:https://jsfiddle.net/om83Ljtm/
它包含 div
、img
和 span
元素。 img
作为 div
的背景图像。我不使用 CSS background
-属性 作为背景图像,因为我想在悬停 div
时更改不透明度。 span
包含与背景图像重叠的文本。悬停 div
时,我想更改图像的不透明度。但是,当鼠标悬停在文本 (span
) 上时,此方法有效,img
的不透明度变回初始值 0.6。但是当我将鼠标悬停在文本上时,我希望图像不(!)改回其不透明度。如何实现?
总结一下:在 JSFiddle 中,如果我将鼠标悬停在 div
上,不透明度会更改为 1。这应该保持不变,即使我将鼠标悬停在 span
中的文本上也是如此。这还行不通。
您可以通过将鼠标悬停在 div 而不是 img 上来实现此目的:https://jsfiddle.net/om83Ljtm/2/
.event:hover img {
opacity: 1;
}
使用.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>
就这样 ;)
.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;
}
<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>
我提供一个 JSFiddle:https://jsfiddle.net/om83Ljtm/
它包含 div
、img
和 span
元素。 img
作为 div
的背景图像。我不使用 CSS background
-属性 作为背景图像,因为我想在悬停 div
时更改不透明度。 span
包含与背景图像重叠的文本。悬停 div
时,我想更改图像的不透明度。但是,当鼠标悬停在文本 (span
) 上时,此方法有效,img
的不透明度变回初始值 0.6。但是当我将鼠标悬停在文本上时,我希望图像不(!)改回其不透明度。如何实现?
总结一下:在 JSFiddle 中,如果我将鼠标悬停在 div
上,不透明度会更改为 1。这应该保持不变,即使我将鼠标悬停在 span
中的文本上也是如此。这还行不通。
您可以通过将鼠标悬停在 div 而不是 img 上来实现此目的:https://jsfiddle.net/om83Ljtm/2/
.event:hover img {
opacity: 1;
}
使用.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>
就这样 ;)
.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;
}
<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>