转换后触发css悬停状态更改
Trigger css hover state change after transition
我有一些UI,它包含javascript事件,这些事件会导致CSS更改,从而重新定位UI中的元素。我遇到了悬停状态的问题,在这些更改之后,悬停状态不会正确更新。我在这里总结了一个非常简单的例子。
- 悬停在"块1"观察:"块一"变蓝
- 单击"块1"观察:css的更改会导致块翻转
- 观察:鼠标现在悬停在"块2"上,但"块1"仍然是蓝色
- 预期行为:变换后"块2"应为蓝色,"块1"应为红色
- 观察:轻轻移动鼠标会使它们"正确"
$(function() {
$('.block').click(function () {
$('.container').toggleClass('flipped');
});
});
.container {
display: flex;
width: 150px;
}
.container.flipped {
transform: rotate(180deg);
}
.block {
height: 50px;
width: 50px;
background-color: red;
margin: 10px;
}
.block:hover {
background-color: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="block">
block 1
</div>
<div class="block">
block 2
</div>
</div>
有没有一种方法可以确保在应用类并发生更改后,悬停状态得到正确更新?
这个解决方案有点像黑客。它并不完美,但它完成了任务。
$(function() {
$('.block').click(function () {
$('.container').hide();
$('.container').toggleClass('flipped');
$('.container').show(0);
});
});
隐藏容器,翻转它,然后再次显示它,会强制重新绘制页面的该部分,这似乎会再次触发:hover
选择器。
注意:将0
传递给show()
似乎是必要的。
这里有一个演示:
CodePen链接
相关文章:
- 悬停下拉菜单即使在鼠标移出后也保持活动状态
- 添加:在悬停其他elem时,将悬停状态添加到不同elem
- JQUERY-在没有悬停后将SRC更改回原来的状态
- 美国地图插件,具有状态数据/悬停功能的新按钮
- CSS / HTML5:拖放后保持悬停状态
- 在单击按钮时激活按钮的悬停状态,直到单击另一个按钮(Javascript/JQuery)
- 需要在悬停时激活动作,并在7秒内返回到原始状态
- Highcharts点击事件返回“;悬停”;state而不是“state”;选择“;状态
- 转换后触发css悬停状态更改
- Lasso selectables禁用CSS:悬停状态
- 悬停状态指针事件:无Javascript回退
- Javascript/JQuery样式-#按钮:点击全屏后悬停保持活动状态
- 悬停样式应该在动态加载多级菜单时保持单击状态
- 悬停并选择图像贴图的状态
- Chrome动画CSS3三维立方体与悬停状态问题
- 如何在按下鼠标时在 Chrome 中保持悬停状态
- Javascript在悬停状态下制作下拉菜单 - 没有HTML中的硬编码
- 菜单悬停状态
- 在益智游戏中,如何使可移动瓷砖的悬停为红色,而其他瓷砖保持原始状态
- 控制CSS状态:悬停,活动