【发布时间】:2021-04-20 08:41:18
【问题描述】:
从example 开始,我正在尝试使 html 页面的非悬停元素变暗(即降低不透明度)。
以下代码仅适用于非重叠元素。但是,如果页面包含在背景中重叠的元素,并且我不希望在悬停时对其产生任何影响(例如下面的绿色正方形),那么感兴趣的“可悬停”元素(例如下面的红色圆圈和蓝色矩形)是当它们不悬停时变暗,但当光标仍在背景形状上时。
换句话说:
。绿色方块:不可“悬停”(悬停时不应有任何影响)
。红圈:“可悬停”(即在悬停时使所有其他元素变暗,即蓝色矩形和绿色正方形)
。蓝色矩形:“可悬停”(即在悬停时使所有其他元素变暗,即红色圆圈和绿色正方形)
当悬停在绿色方块上时,如何跳过调暗所有元素?
.parent:hover .child {
opacity: 0.2;
transition: all .3s;
}
.parent .child:hover {
opacity: 1;
transition: all .3s;
}
<svg width="250" height="250">
<g class="parent">
<rect x="0" y="0" width="150" height="150" fill="green"/>
<g class="child">
<circle cx="30" cy="45" r="25" fill="red"/>
</g>
<g class="child">
<rect x="60" y="80" width="60" height="30" fill="blue"/>
</g>
</g>
</svg>
【问题讨论】: