当我将鼠标悬停在图像上的某个区域上时,我想要显示一个div。悬停效果很好,当命中区域悬停时会出现div,但是我遇到了两个问题。
我想用CSS实现这个目标,但如果JS是必要的,那很酷。
我创建了这个fiddle,粗略地了解了问题所在。正如您所看到的,所有三个红色框都应该触发悬停效果,但只有最后一个实际发生,因为悬停时出现的div会阻止它们。该按钮将出现在蓝色框内,但只要鼠标离开命中区域,该框就会消失。
我使用不透明度来显示和隐藏div,因为我们的网站具有允许淡入淡出的过渡。代码被简化并删除,但说明了这个想法。
HTML:
<a class="hover-grid hit-area">
</a>
<a class="hover-grid hit-area">
</a>
<a class="hover-grid hit-area">
</a>
<div class="details">
</div>
CSS:
.hover-grid
{
background-color: red;
opacity: 0.25;
width:100px;
height:100px;
display: block;
float:left;
}
.details
{
opacity: 0;
background-color:blue;
width:200px;
height:150px;
position: relative;
z-index: 2;
}
.hit-area:hover ~ .details
{
opacity:1;
}
答案 0 :(得分:1)
只需将悬停效果应用于.detail。而不是不透明度使用display:none,不触发不可见元素上的悬停状态。
http://jsfiddle.net/me2loveit2/3shj2omg/3/
.details
{
display:none;
background-color:blue;
width:200px;
height:150px;
position: relative;
z-index: 2;
}
.hit-area:hover ~ .details
{
display:block;
}
.details:hover
{
display:block;
}