我在CSS中制作下拉菜单时,发现了Firefox 44中的
正如您所看到的,div元素的pointer-events属性被设置为none,因此我们预计它根本不会运行:hover。
但是请继续在滚动条上移动鼠标指针(在Firefox和Opera中)。 pointer-events在所有主要浏览器中都得到了完全支持,那么出了什么问题?我有什么遗漏吗?
编辑:在较新版本的Opera中已解决此问题,但我需要它至少在常见版本的Chrome、Opera和Firefox上运行。有什么诀窍或替代方法吗?
pointer-events
问题。起初我以为这是Firefox新版本中出现的错误,但我又在Firefox 25中看到了这个问题,并且它也存在于运行webkit的Opera 18中。
代码本身可能非常令人困惑,因此我制作了另一个示例:
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>
但是请继续在滚动条上移动鼠标指针(在Firefox和Opera中)。 pointer-events在所有主要浏览器中都得到了完全支持,那么出了什么问题?我有什么遗漏吗?
编辑:在较新版本的Opera中已解决此问题,但我需要它至少在常见版本的Chrome、Opera和Firefox上运行。有什么诀窍或替代方法吗?
编辑 2:这里是 fiddle https://jsfiddle.net/ja0ct9s6/2/
乍一看,它工作得很好
但是把光标移出它,再从右侧移入(当你看不到下拉菜单时),它看起来仍然可以悬停滚动(记得使用火狐浏览器)
opacity
来隐藏子菜单有充分的理由吗? - Linus Caldwelldisplay:none
,但这样就无法实现平滑的过渡效果(显示状态会在50%突然改变)。 - javadvisibility
。也许你需要稍微调整一下transition
属性,加上一个延迟,并包含visibility
,但这应该很容易。 - Linus Caldwell