我正在尝试创建这种滑动效果,但我遇到的唯一问题是排队。
$(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));
});
上面的容器变量是当前容器。我做了 :not(container) 所以当前容器会继续动画。这一切都在一个具有两个属性的函数中,即容器元素的 ID 和动画将要运行的方式(只是关键字通过 if 语句运行)。然后我将有一个菜单来激活这样的动画:
if($(this).attr('name') == 'home') {
animation('home', 'top');
}
else if { .....
重新启动动画功能只是将所有其他动画元素重新启动到它们的原始位置,以便它们可以再次运行。现在,问题是,在重新启动功能运行之前存在延迟,因此如果您在延迟时间内单击两个菜单项,您最终会运行重新启动功能,然后一切都会变得很混乱。
我需要一种将动画重新启动到其原始位置的方法,以便它可以再次运行,但不会干扰和重新启动其他动画元素。否则我们最终会陷入巨大的混乱。我已经设置了一个快速的 jsFiddle,所以你可以试试效果。这段代码现在有点乱,我打算等我完成后把所有的东西都整理一下,但是这个排队问题真的让我卡住了。http://jsfiddle.net/qe7dj/