我有一个像这样的wordpress菜单:
<div id="top_menu">
<ul class="menu">
<li id="menu-item-1" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1"><a href="moo">moo</a>
<ul class="sub-menu">
<li id="menu-item-2" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2"><a href="foo">foo</a></li>
<li id="menu-item-3" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3"><a href="bar">bar</a></li>
</ul>
</li>
<li id="menu-item-4" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4"><a href="baz">baz</a></li>
</ul>
</div>
样式如下:
#top_menu ul li ul{
z-index: 9999;
position: absolute;
left: -999em;
height: auto;
top:80px;
width:auto;
clear:both;
border:0;
border-top:none;
}
#top_menu ul li li {
margin:0px;
padding:0px;
background:none;
width:auto;
}
#top_menu ul li ul a {
width:auto;
line-height:26px;
font-size:16px;
display:block;
text-align:left;
text-shadow: none;
}
#top_menu ul li:hover ul ul, #top_menu ul li:hover ul ul ul, #top_menu ul li.sfhover ul ul, #top_menu ul li.sfhover ul ul ul {
left: -999em;
}
#top_menu ul li:hover ul, #top_menu ul li li:hover ul, #top_menu ul li li li:hover ul, #top_menu ul li.sfhover ul, #top_menu ul li li.sfhover ul, #top_menu ul li li li.sfhover ul {
left: auto;
}
#top_menu ul li:hover, #top_menu ul li.sfhover {
position: static;
}
您可以在此处查看:http://jsfiddle.net/JBXLr/1/
现在,如果你翻看“moo”子菜单,将显示foo和bar。我现在的目标是保持该子菜单打开,让鼠标移出“moo”-link-area后说2s。我怎么能这样做?
我将不胜感激任何帮助!
答案 0 :(得分:1)
使用javascript(jQuery)显示子菜单并应用delay()
$('#top_menu li').hover(function(){
$('.sub-menu', this).show();
}, function(){
$('.sub-menu', this).delay(2000).hide();
});
答案 1 :(得分:0)
因为你提到了css,所以要发布这个帖子。 http://jsfiddle.net/JBXLr/3/使用css3过渡来实现您想要的效果。
这是一个使用jquery和你当前的css的替代javascript解决方案。
$("li").mouseout(function(){
var uls =$(this).children("ul");
uls.css("left","auto");
setTimeout(function(){ uls.css("left",""); }, 2000);
});