Javascript JQuery:不需要的动画减速

Javascript JQuery:不需要的动画减速,javascript,jquery,menu,jquery-animate,Javascript,Jquery,Menu,Jquery Animate,大家好这是我第一次询问stackoverflow 我创建了一个简单的代码来管理菜单。这是代码。 如果我点击“gestione新闻”,所有菜单元素将以不同的延迟向左滑动 然后会出现一个带有文本“Articoli”的图像(在JSFIDLE上你看不到) 因此,我单击图像,文本“articoli”将淡出,菜单元素将延迟重新出现在与之前相同的位置。 所以问题是,如果我尝试4-5次,第一个动画(即菜单元素的向左滑动)将变慢,如果我再次尝试,动画将越来越慢 我不认为问题出在delay()函数中,但在$.ea

大家好这是我第一次询问stackoverflow
我创建了一个简单的代码来管理菜单。这是代码。

如果我点击“gestione新闻”,所有菜单元素将以不同的延迟向左滑动 然后会出现一个带有文本“Articoli”的图像(在JSFIDLE上你看不到) 因此,我单击图像,文本“articoli”将淡出,菜单元素将延迟重新出现在与之前相同的位置。
所以问题是,如果我尝试4-5次,第一个动画(即菜单元素的向左滑动)将变慢,如果我再次尝试,动画将越来越慢

我不认为问题出在delay()函数中,但在$.each()中,可能我错了。
有人能帮我吗。

提前谢谢。

将菜单放在一个div中。不要对每个元素进行foreach,而是对主div设置动画


延迟不应该引起您的问题,因为它所做的只是等待开始动画计时,但是让这么多动画同时运行会启动多个内部计时器,而不仅仅是一个,这可能会导致打嗝。

将菜单放在一个div中。与其对每个元素进行foreach,不如对主div进行动画


延迟不应该引起您的问题,因为它所做的只是等待开始动画计时,但同时启动那么多动画会启动多个内部计时器,而不是一个,这可能会导致打嗝。

动画似乎在完成其工作后仍在运行一段时间。使用以下命令查看它们何时在Firebug或Chrome中停止:

$(this).animate({"marginLeft":"0px"},"slow", function(){console.log("anim stopped");});
我不确定它们为什么仍在运行,但您可以在运行新动画之前停止它们,如下所示:

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

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

动画似乎在完成工作后仍在运行一段时间。使用以下命令查看它们何时在Firebug或Chrome中停止:

$(this).animate({"marginLeft":"0px"},"slow", function(){console.log("anim stopped");});
我不确定它们为什么仍在运行,但您可以在运行新动画之前停止它们,如下所示:

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

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

谢谢您的回答我已经尝试使用stop()函数,尝试此操作时,减速仍然存在。现在我尝试停止,但减速不存在。不过,请原谅我的英语不好,谢谢你的回答。我已经尝试过使用stop()函数,当我尝试此操作时,减速仍然存在。现在我尝试停止,但减速不存在。不过,请原谅我的英语不好,谢谢你