我试图创建这种滑动效果,但我遇到的唯一问题是排队。jQuery中的通用动画队列?
$(this).animate({'left' : '0%'}, randTime, function() {
$(this).animate({'boxShadow' : 'none'});
setTimeout(function() {
$container.children('.slice').addClass('noshadow');
$('body > div:not(#'+container+') .slice').each(function() {
restartAnimation($(this));
});
$container.children('.content').fadeIn();
}, (aLength+100));
});
上面的容器变量是当前容器。我做了:没有(容器),所以当前的容器将继续动画。这全部在一个包含两个属性的函数中,即容器元素的ID和动画将运行的方式(仅关键字贯穿if语句)。然后,我将有激活这样的动画菜单:
if($(this).attr('name') == 'home') {
animation('home', 'top');
}
else if { .....
重启动画功能只需重新启动所有其他的动画元素到原来的位置,使他们能够再次运行。现在,问题是,直到重新启动功能运行才会有延迟,所以如果在延迟时间内单击两个菜单项,最终重新启动功能运行,然后一切都变得非常困惑。
我需要一种方法将动画重新启动回原来的位置,以便它可以再次运行,但不会干扰并重新启动其他动画元素。否则,我们会陷入一片混乱。我已经建立了一个快速jsFiddle,所以你可以尝试一下效果。这段代码现在有点乱,我计划在完成后整理一切,但这个排队问题真的让我陷入了困境。 http://jsfiddle.net/qe7dj/
1+不错的效果。 – Eonasdan 2012-07-10 17:46:32
是boxShadow的动画吗?或者你想使用.css()? – Bergi 2012-07-10 19:05:04