【发布时间】:2016-03-13 21:43:00
【问题描述】:
当我在 Firefox 44 中发现有关 pointer-events 的内容时,我正在 CSS 中的下拉菜单上工作。起初我以为这是在新版本的 Firefox 中发生的错误,但我在 Firefox 25 中再次看到了问题,并且它也存在于 Opera 18(运行 webkit)中。
代码本身可能很混乱,所以我制作了另一个示例:
div {
width: 150px;
height: 200px;
line-height: 30px;
background: #DDD;
/*- overflow-y -*/
overflow-y: auto;
/*- pointer events -*/
pointer-events: none;
}
div:hover {
background: #D77;
}
<div>
text
<br/>text
<br/>text
<br/>text
<br/>text
<br/>text
<br/>text
<br/>text
<br/>
</div>
如您所见,div 元素的pointer-events 属性设置为none,因此我们预计它根本不会运行:hover。
但请继续将光标移动到滚动条上(在 Firefox 和 Opera 中)。
pointer-events is completely supported in all major browsers,怎么了?我错过了什么吗?
编辑:
它已在较新版本的歌剧中得到解决
但我需要它至少适用于所有常见版本的 chrome、opera 和 firefox
有什么技巧或替代方法吗?
编辑 2: 这是小提琴https://jsfiddle.net/ja0ct9s6/2/
乍一看,它工作得很好
但是将光标移出它,从右侧再次将其移入(当您看不到下拉菜单时),看起来滚动条仍然可以悬停(?)(记得使用firefox)
【问题讨论】:
-
只是为了澄清:您最初关心的是显示滚动条,但使它们处于非活动状态,可以说是只读的。对吗?
-
几分钟...,我正在为它做小提琴
-
刚刚更新了我的问题
-
您是否出于正当理由使用
opacity隐藏子菜单? -
当然,我会使用
display:none,但那样我就不能有一个清晰的过渡(显示突然改变了50%)