这是可以做到的。
首先,删除 CSS 中的每个 :hover 语句。
然后,我添加以下 jQuery:
$("#nav li").not('.subs li').mouseenter(function () {
if ($(".slider").is(":visible")) {
$(".slider").stop(false, false).animate({
height: $(this).find('.subs').height() + "px"
}, 500)
$(this).find('.subs').show();
} else {
var subHeight = $(this).find('.subs').height();
$(".slider").css({
"height": subHeight + "px"
})
$(".slider").stop(false, false).slideDown(500);
$(this).find('.subs').show();
}
})
$("#nav li").mouseleave(function () {
$(this).find('.subs').hide();
})
$("#nav").mouseleave(function () {
$(".slider").stop(false, true).delay(500).slideUp(500);
})
我添加了 IF 以检查滑块是否必须显示或仅动画。我还为 #nav 添加了一个 mouseleave 处理程序,以防止您的滑块在项目之间跳转。并添加了延迟()以实现流畅的动画。
我还更改了 css :
#nav ul.subs {
color: #333333;
display: none;
left: auto;
position: absolute;
top: 40px;
width: 96%;
z-index: 9606;
}
看看小提琴