JQuery:不想要的动画减速

时间:2012-04-05 22:51:06

标签: javascript jquery menu jquery-animate

大家好,这是我第一次询问stackoverflow
我创建了一个简单的代码来管理菜单。这是代码 http://jsfiddle.net/corvallo/97x89/5/

如果我点击“gestione news”,所有菜单元素将以不同的延迟向左滑动 将出现带有文字“Articoli”的图像(在jsfiddle上你看不到) 所以我点击图像,文本“articoli”将fadeOut,菜单元素将重新出现,延迟时间与以前相同。
所以问题是,如果我尝试4-5次第一个动画(即菜单元素的向左滑动)将减速,如果我再次尝试动画将会变慢和变慢。

我不是问题是在延迟()函数中,而是在$ .each()中,也许我错了。
有人可以帮我这个。
提前谢谢。

2 个答案:

答案 0 :(得分:1)

在他们显然完成工作后,动画似乎仍然有一段时间没有运行。使用以下内容查看它们何时停留在Firebug或Chrome中:

$(this).animate({"marginLeft":"0px"},"slow", function(){console.log("anim stopped");});

我不确定他们为什么还在运行,但你可以在运行这样的新动画之前停止它们:

$(this).stop().animate({"marginLeft":"0px"},"slow");

这似乎可以解决您遇到的减速问题。

答案 1 :(得分:0)

将菜单放入div中。不是在每个元素上做foreach,而是为主div设置动画。

延迟不应该导致你的问题,因为所有这一切都是等待开始动画计时,但是同时进行多次动画会启动几个内部计时器而不是一个,这可能会导致打嗝。