【发布时间】:2013-12-24 04:00:32
【问题描述】:
我有一个扩展“悬停时”的菜单,但问题是如果我将鼠标悬停在一个项目上,并且该项目正在运行动画下一个项目动画将不流畅(基本上是子-menu 将显示在动画中间)。
我已经创建了a JS Fiddle 的问题。
我认为我的这部分代码导致了问题:
j('.active').next('ul')
.removeClass('sub-menu')
.addClass('jsub-menu').css({
'visibility':'',
'opacity':'',
'height':get_height_of_first_child +'px',
'width':'0'
});
j('.active').next('.jsub-menu').animate({width:get_width},2000);
j('.active').next('.jsub-menu').animate({height:get_submenu_height},2000);
编辑:这是更新后的Fiddle Code。如果您仔细查看59 行,我已添加此代码
if(j('.active').next('.jsub-menu').is(':animated')){
j('.active').next('.jsub-menu').hide();
}
现在,如果您将鼠标悬停在 “在我展开时悬停我!” 并且该菜单已动画化,它将隐藏菜单(不希望这样,但请耐心等待)。
所以现在尝试将鼠标悬停在 “仅悬停在我身上” 和 WAIT 4-5 秒 和 THEN 悬停在 "在我展开时将鼠标悬停在我身上!” 你会看到下一个菜单的动画很流畅。
这是我想要的效果,但显然我不想在这个过程中隐藏菜单。
【问题讨论】:
-
你想看到什么结果?如果运行动画的项目仍在运行,您是希望该动画在下一个动画之前完成,还是希望下一个动画即使在前一个动画尚未完成动画的情况下也开始显示?
-
是的,我想在第一个动画完成后开始第二个动画...
-
我建议(如果可能的话)重新设计导航,太多的关卡很烦人,你会遇到意外 mouseOut 的问题,然后他们就不会再经历整个事情了。我建议跳到 UX 堆栈交换 (ux.stackexchange.com) 寻找一些方法来简化菜单以获得更好的用户体验
标签: javascript jquery css animation