大家好,这是我第一次询问stackoverflow
我创建了一个简单的代码来管理菜单。这是代码
http://jsfiddle.net/corvallo/97x89/5/
如果我点击“gestione news”,所有菜单元素将以不同的延迟向左滑动
将出现带有文字“Articoli”的图像(在jsfiddle上你看不到)
所以我点击图像,文本“articoli”将fadeOut,菜单元素将重新出现,延迟时间与以前相同。
所以问题是,如果我尝试4-5次第一个动画(即菜单元素的向左滑动)将减速,如果我再次尝试动画将会变慢和变慢。
我不是问题是在延迟()函数中,而是在$ .each()中,也许我错了。
有人可以帮我这个。
提前谢谢。
答案 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设置动画。
延迟不应该导致你的问题,因为所有这一切都是等待开始动画计时,但是同时进行多次动画会启动几个内部计时器而不是一个,这可能会导致打嗝。