常見問題。父菜單項和.submenu
之間的空格是罪魁禍首。
一個簡單的解決方法是將.submenu
包裝在一個div
中,該寬度足以作爲菜單項和子菜單之間的橋樑。
看到這裏 -
CSS changes-
.submenu-wrapper {
position: absolute;
min-width: 160px;
min-height: 36px;
top: -4px;
left: 160px;
}
.submenu {
position: relative;
min-width: 160px;
min-height: 36px;
top: 0;
left: 10px;
background: url('../images/gradient_menuarea.png') repeat-x;
}
JS變化 -
$(function(){
$('#menu > li, .submenu > li').hover(
function(){
var submenu = $(this).find('ul.submenu');
if (submenu.hasClass('submenu')){
submenu.removeClass('hide');
}
},
function(){
var submenu = $(this).find('ul.submenu');
if (submenu.hasClass('submenu')){
submenu.addClass('hide');
}
});
});
就這樣子菜單UL是正確的目標。
請注意,您可以通過使用這個CSS
.submenu {display:none;}
#menu-area ul li:hover .submenu {display:block}
消除JS你不會需要.hide
類的子UL或者
http://jsfiddle.net/BuJav/16/
來源
2013-02-25 15:38:29
rzr
[好像工作只是罰款在Chrome 25中](http://i.imgur.com/qrCJf9E.png)。 – 2013-02-25 14:10:02
我注意到孩子和父母菜單之間存在差距。快速移動鼠標時,它不會隱藏子菜單。這告訴我,當你的鼠標碰到這個間隙時,它會運行代碼來隱藏菜單,因爲你不再徘徊在父菜單上。 – christopher 2013-02-25 14:11:10
@Chris Cooney:是的,我注意到了。任何想法如何克服這一點? – 2013-02-25 14:12:05