CSS选择器:悬停加上未按下鼠标按钮
CSS selector for :hover plus no mouse-button pressed?
我目前使用:hover
CSS伪类以类似于此处建议的方式显示类似工具提示的元素(即table
s):
div.tool:hover div.tooltip { display:block; }
我喜欢这样一个事实,即这不需要任何JavaScript。
是否可以为悬停仅在未按下鼠标按钮时应用的效果添加进一步的约束?原因是我想防止这些工具提示与基于jQuery UI的其他功能(拖放、下拉菜单)相干扰。(碰巧的是,工具提示当前与其对应的"工具"元素一起拖动。)
基本上,如果鼠标点击css选择器方法id:active,那么你必须做的是:
.tool {
min-height: 18px;
height: auto;
}
.tool:active .tooltip {
display: none !important;
}
.tool:hover .tooltip {
display: block;
}
.tooltip {
display: none;
}
顺序至关重要,因为更高的规则优先
这是一把正在工作的小提琴:http://jsfiddle.net/Hive7/bsnnb6sf/
此外,您可能需要考虑使用可见性而不是显示,因为否则您需要设置父对象的高度:
.tool:active .tooltip {
visibility: hidden !important;
}
.tool:hover .tooltip {
visibility: visible;
}
.tooltip {
visibility: hidden;
}
小提琴示例:http://jsfiddle.net/Hive7/bsnnb6sf/1/
是否可以为悬停仅适用于未按下鼠标按钮的情况?
一种选择是使用:active
伪类来隐藏工具提示。根据规范:(我的重点)
5.11.3动态伪类::hover、:active和:focus
激活元素时应用
:active
伪类由用户执行。例如,在用户按下鼠标的两次之间按钮并将其释放。
例如:
div.tool:hover div.tooltip { display:block; }
div.tool:active div.tooltip { display:none; }
我认为这是不可能的,因为悬停事件总是在单击事件之前启动。如果您想在用户单击元素后禁用该效果,可以在单击事件中向css添加自定义样式规则,通过element.addClass()
或element.css()
覆盖悬停规则
相关文章:
- 如何知道鼠标按钮的当前状态(mouseup状态或mousedown状态)
- 如何使用Javascript检查当前鼠标按钮状态
- 如何在按住鼠标按钮且光标在视口外时检测鼠标离开
- jQuery UI可排序,释放鼠标按钮事件
- 有可能得到鼠标按钮4、5等吗
- 当鼠标按钮的指针尝试关闭弹出窗口时,阴影弹出框消失
- 织物.js - 在不按住鼠标按钮的情况下移动对象
- HTML5画布:如果在画布上移动鼠标时按下了鼠标按钮,则进行检测
- 检查按下了哪个鼠标按钮,如果是双击
- CSS选择器:悬停加上未按下鼠标按钮
- 按下鼠标按钮时监视鼠标坐标
- 无法检测在移动鼠标时按下的鼠标按钮
- 是鼠标按钮的单击通用
- Dart HTML-在不释放鼠标按钮的情况下更改输入范围
- 当我按住鼠标按钮移动鼠标时,Fabric.js–元素是未定义的
- 布尔函数来知道鼠标按钮的位置
- 如何在按下鼠标按钮时触发' onMouseEnter '
- 鼠标事件"mousemove"在按下和释放鼠标按钮时触发
- KineticJS:获取鼠标按钮,x和y从'点击'圆圈上的事件
- 鼠标移动回调事件没有显示哪个鼠标按钮被按下