转换对象时,在移动鼠标之前,悬停状态不会更新(带有:hover
的CSS规则)。
当您将DOM元素移动到用户鼠标下方(使用transition
或其他等效项)时,直到鼠标移动才会更新悬停状态。这有什么解决方法吗?我不想让花哨的JS发动“鼠标悬停”事件。
JSFiddle:http://jsfiddle.net/forestka/8xJkR/1/
HTML:
<div id="below">
This is the one below. (Now move the mouse.)
</div>
<div id="hover">
Click me! (But don't move the mouse after you click)
</div>
CSS:
#hover:hover,
#below:hover {
background-color: #f00;
}
#below {
padding:10px;
position: absolute;
top:0;
left:0;
}
#hover {
background-color: #ddd;
padding: 10px;
position: absolute;
left: 0;
top:0;
transition: top 1s ease;
z-index: 100;
}
#hover.hidden {
top: 50px;
}
旁注:SO不会让我在没有代码的情况下插入JSFiddle链接?
答案 0 :(得分:1)
这很奇怪。 IE10似乎也有相同的行为。在主要的3种浏览器中,Firefox似乎是唯一能够满足您需求的浏览器。 (显示隐藏div的悬停状态,因为它变得可见而不必移动鼠标以使其显示悬停状态)
这显然不是你想要的,但如果你需要一个解决方法,你可以这样做:
$("#hover").click(function() {
$("#hover").addClass("hidden");
$("#below").trigger("mouseover");
});
$("#below").hover(function() {
$("#below").css("background-color", "#f00");
}, function () {
$("#below").css("background-color", '');
});
有人可能只使用CSS有更好的解决方案,但我认为无论如何我都会给你的问题提供一个答案。