我有一个菜单,里面有一个子菜单。当我悬停主菜单时出现子菜单,但是一旦我尝试进入子菜单,它就会在大部分时间消失。只有我非常快,我才能在它消失之前达到它。
HTML:
<header>
<div class="wrapper">
<a href="#" id="logo" class="fl"><img src="images/logo.png" width="125" height="20" alt=""></a>
<nav class="fl">
<ul >
<li> <a href="#" class="selected">Target Groups</a>
<ul>
<li><a href="">Manage Target Groups</a></li>
<li><a href="">Create Target Group</a></li>
</ul>
</li>
<li><a href="#">Activity</a></li>
<li><a href="#">Reports</a></li>
<li><a href="#">Settings</a></li>
<li><a href="#">Admin</a></li>
</ul>
</nav>
</div>
<!-- end .wrapper -->
</header>
CSS:
header{
margin-top: 30px;
background: url(../images/header-bg.png) no-repeat;
width: 942px;
height: 76px;
padding: 27px 25px 5px;
}
header .wrapper{
border-bottom: 1px solid #e5e5e5;
float:left;
width: 862px;
padding: 0 40px 5px;
position:relative;
}
header nav{
margin-left: 45px;
}
header nav ul{
z-index: 100;
}
header nav ul li{
display: inline;
margin-right: 35px;
line-height: 20px;
z-index: 100;
}
header nav ul li ul{
display: none;
position:absolute;
width: 962px;
left: 0;
top: 40px;
}
header nav ul li ul li{
float: left;
}
header nav ul li:hover ul{
display:block;
}
header nav ul li a{
font-size:16px;
color: #5b666a;
text-decoration: none;
padding: 5px 10px;
}
header nav ul li a.selected,header nav ul li a:hover{
background: #657073;
color: white;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
我真的被困住了,请帮忙......
答案 0 :(得分:2)
为了达到你想要的效果,最好使用padding-top
作为你的子菜单,而不是绝对定位(使用后者你会在菜单和子菜单之间找到'空'空间,导致鼠标移出) :
编辑:我将position:relative;
添加到ul li
,将z-index
添加到ul li ul
,否则子菜单将位于主菜单上 - 并将其禁用..
答案 1 :(得分:0)
我还用hoverIntent修正了这个问题。当时是一个独家IE漏洞,但是很容易解决。
http://cherne.net/brian/resources/jquery.hoverIntent.html
这就是我的功能。
$('.main-nav > ul > li').hoverIntent({
timeout: 300,
over: function () {
$(this).addClass('hover')
},
timeout: 300,
out: function () {
$(this).removeClass('hover')
}
});
我的标记与吮吸鱼菜单的儿子结构相同。