当鼠标移动缓慢时,Bootstrap 4中的菜单消失
我正在运行这个小提琴 ,当鼠标指针从START快速移动到展开的菜单时,一切都很好。 但是,当运动较慢时,菜单会关闭,因为它感觉就像鼠标左侧。
const menu = $("li.dropdown"); menu.on("mouseenter mouseleave", () => { menu.toggleClass("open"); });
最初,我试图使列表项控制更高但很快意识到菜单将在它下面打开(加上这个不幸的垂直距离)。
我该怎么办?
显然Bootstrap创建者出于某种原因发现了这个好处(或者没有考虑鼠标移动而是点击)。 我可能以不恰当的方式设置hover事件吗?
对我来说这个解决方案更好
这是小提琴
.open>.dropdown-menu{ margin-top: initial; }
是的,它是由菜单元素和菜单本身之间的空间引起的。 当你快速移动时,没关系,因为光标“直接跳转”到菜单,但移动缓慢,你将离开菜单项区域和菜单消失。 我想到的一个解决方案是将其移动1px:
.open>.dropdown-menu { top: calc(100% - 1px); }
工作JSFiddle 。