我有一个li菜单我正在使用当菜单悬停在子菜单上滑过右侧时。然后当div不再被徘徊时,它会像你期望的那样向上滑动。然而,似乎存在一个问题,即如果鼠标悬停到另一个div而最后一个仍在向上滑动,那么最后一个将不会完成关闭并且将打开2个子菜单。如果我慢慢移动鼠标或将滑动速度更改为0,那么它可以工作,但是如果可以的话我想要滑动动画。
这是悬停功能:
$(listitem).hover(
function () {
listID = $(this).find("ul");
$(listID).slideDown('medium',function() {
$(this).clearQueue();
});
},
function () {
listID = $(this).find("ul");
$(listID).slideUp(0,function() {
$(this).clearQueue();
});
} );
);
您可以查看我正在处理的网站,而不是发布jfiddle。如果需要一个jfiddle,我会抛出一个。如果您将鼠标悬停在“Maya Inca Aztec Agriculture”选项卡上,则会显示侧边菜单。接下来的3个标签也会这样做。如果将鼠标从一个选项卡快速移动到下一个选项卡,则前一个选项卡将保持打开状态。多数民众赞成我想解决的问题
答案 0 :(得分:1)
如果在slideDown()
完成之前调用slideUp()
,则对clearQueue()
的调用会从队列中删除slideDown()
,因此该元素仍然可见。你想要做的是在开始下一个动画之前停止动画,如下所示:
$(listitem).hover(function () {
$($(this).find("ul")).stop().slideDown('medium');
}, function () {
$($(this).find("ul")).stop().slideUp(0);
});
但如果你真的想要slideUp(0)
,你也可以使用.hide()
。