我有一个下拉菜单,其中子菜单放置在不同的元素上。所以基本上当鼠标离开菜单项时,子菜单会立即关闭,因为子菜单不是其子元素。
var menuItem = $(".menu-item");
menuItem.hover(hoverIn, hoverOut);
function hoverIn() {
var mnItemMeta = $(this)[0].getBoundingClientRect();
$(".sub-menu").css({
opacity: 1,
left: mnItemMeta.left
})
}
function hoverOut() {
$(".sub-menu").css({
opacity: 0
})
}
html,body{background-color: #efefef;}
.menu {
list-style: none;
padding-left: 0;
display: flex;
justify-content: center;
}
a {
display: block;
padding: 10px 20px;
text-decoration: none;
color: inherit;
}
.sub-menu {
opacity: 0;
background-color: white;
position: absolute;
transition: .2s ease;
}
.sub-menu-list {
list-style: none;
padding-left: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul class="menu">
<li class="menu-item"><a href="#">Menu Item</a>
</li>
</ul>
<div class="sub-menu">
<ul class="sub-menu-list">
<li><a href="#">Sub Menu 1</a>
</li>
<li><a href="#">Sub Menu 2</a>
</li>
<li><a href="#">Sub Menu 3</a>
</li>
<li><a href="#">Sub Menu 4</a>
</li>
</ul>
</div>
问题是如何扩展悬停区域,使得当光标指向子菜单时,它会忽略hoverOut
的动作。
注意:不要告诉我将子菜单放在菜单项内部,我已经知道那样可以实现。这是为了处理需要将子菜单放在菜单项外部的情况。
jquery
来实现这个。 - mmativmenu-item
类的li
的底部填充即可。确保sub-menu
和li
相互附着在一起。但问题是,如果用户想要点击子菜单,在这种情况下用户必须退出父级li
,这样sub-menu
就会自动隐藏。你想要增加多少父级li
的底部填充?可以吗? - Samir