【发布时间】:2018-02-22 22:19:53
【问题描述】:
当我将鼠标悬停在两个元素的重叠部分上时,我正在尝试应用一些动画。我该怎么做?
当我将鼠标悬停在具有 main 类和方向类之一 (left, right, top, bottom) 的元素上时,我想应用样式。基本上只有当我将鼠标悬停在内部三角形(大正方形内部)而不是外部三角形时。
使用此示例,我想在将鼠标悬停在区域 LM, TM, RM or BM 上时应用样式/动画,而不是在将鼠标悬停在 L, T, R or B 上时应用样式/动画。
^
/ \
/ \
/ T \
/ \
/_________\
/|\ /|\
/ | \ TM / | \
/ | \ / | \
/ | \ / | \
< L | LM x RM | R >
\ | / \ | /
\ | / \ | /
\ | / BM \ | /
\|/___ ___\|/
\ /
\ /
\ B /
\ /
\ /
v
试过类似的东西:
&:hover&.main:hoover ~ .slider {
background-color: blueviolet;
transform: translateX(100%);
}
但这没有用。无法真正弄清楚如何做到这一点。有什么想法吗?
.hoover-box {
position: relative;
margin: 100px;
}
.slider {
height: 40px;
width: 40px;
position: absolute;
background-color: grey;
left: 5px;
top: 5px;
transition: background 0.5s ease, transform 0.5s ease;
}
.main {
width: 50px;
height: 50px;
position: absolute;
background-color: lightblue;
}
.left {
transform: rotate(45deg);
opacity: 0.5;
position: absolute;
left: 7.5px;
top: 7.5px;
width: 35px;
height: 35px;
z-index: 1000;
background-color: blueviolet;
left: -17.5px;
}
.left:hover ~ .slider {
background-color: blueviolet;
transform: translateX(100%);
}
.top {
transform: rotate(45deg);
opacity: 0.5;
position: absolute;
left: 7.5px;
top: 7.5px;
width: 35px;
height: 35px;
z-index: 1000;
background-color: lightgreen;
top: -17.5px;
}
.top:hover ~ .slider {
background-color: lightgreen;
transform: translateY(100%);
}
.right {
transform: rotate(45deg);
opacity: 0.5;
position: absolute;
left: 7.5px;
top: 7.5px;
width: 35px;
height: 35px;
z-index: 1000;
background-color: gold;
left: 32px;
}
.right:hover ~ .slider {
background-color: gold;
transform: translateX(-100%);
}
.bottom {
transform: rotate(45deg);
opacity: 0.5;
position: absolute;
left: 7.5px;
top: 7.5px;
width: 35px;
height: 35px;
z-index: 1000;
background-color: crimson;
top: 32px;
}
.bottom:hover ~ .slider {
background-color: crimson;
transform: translateY(-100%);
}
<div class="hoover-box">
<div class="left"></div>
<div class="top"></div>
<div class="right"></div>
<div class="bottom"></div>
<div class="main"></div>
<div class="slider"></div>
</div>
【问题讨论】:
-
什么不起作用?我看到了一些效果
-
只有当我将鼠标悬停在内部三角形(与大正方形重叠的旋转正方形部分)上时,我才想要效果。不是当我像现在这样将鼠标悬停在外部三角形上时。
-
寻求代码帮助的问题必须包括在问题本身中重现它所需的最短代码,最好是在堆栈片段中。尽管您提供了一个链接,但如果它变得无效,那么您的问题对于未来遇到同样问题的其他 SO 用户将毫无价值。见Something in my website doesn't work can I just paste a link。
-
我不能在 sn-p 中使用 scss?