提问人:prettyInPink 提问时间:6/5/2021 最后编辑:isherwoodprettyInPink 更新时间:6/5/2021 访问量:672
CSS 将鼠标悬停在已翻译的元素上
CSS hover on translated element
问:
动画元素能否检测实际的鼠标指针位置并以这种方式添加悬停状态? 在下面的示例中,有一个简单的 div 左右移动,如果您将鼠标悬停在 div 上,它将变为黑色,但是当您将鼠标指针留在动画元素的路径中而不移动它时,悬停状态将不会应用。
div{
width: 100px;
height: 100px;
background: red;
animation: move 1s infinite alternate;
}
div:hover {
background: black;
}
@keyframes move{
0%{ transform: translateX(0); }
100%{ transform: translateX(100px); }
}
<div></div>
反之亦然,当您实际将鼠标悬停在 div 上并且不移动鼠标时,即使鼠标指针实际上不再悬停此元素,div 也将保持黑色。
那么,是否可以根据鼠标指针的静态位置保持正常切换到悬停状态呢?
答:
2赞
J4R
6/5/2021
#1
使用 translate 无法做到这一点,因为它具有静态位置。就像 isherwood 所写的那样,翻译后的元素将永远存在于其原始位置。 你可以用绝对定位来做到这一点,在那里你真正移动了元素。
div{
width: 100px;
height: 100px;
background: red;
animation: move 1s infinite alternate;
position: absolute;
}
div:hover {
background: black;
}
@keyframes move{
0%{ left: 0; }
100%{ left: 100px; }
}
<div></div>
评论
0赞
prettyInPink
6/5/2021
静态位置不是原因,相反 - ,然而是。您可以添加到上面的示例中,但它仍然不起作用。对于提供的简化示例来说,这是一个很好的解决方法,但处理的不仅仅是左、右、上、下移动。不过,谢谢。translate
left
right
absolute
transform
上一个:LESS OR 运算符
评论