jQuery - 在延迟的同时在多个元素上运行多个动画

时间:2016-10-27 13:52:16

标签: jquery delay settimeout

我似乎无法回答这个问题,似乎无法在任何论坛上找到答案。

我使用.each()循环多个div元素,我需要运行动画来同时滑动div并同时淡入它。

var intAnimationDelay = parseInt($(this).attr('data-animate-delay'));
$(this).delay(intAnimationDelay).animate({'marginTop' : '50px'}, {duration: (500), queue: true});
$(this).delay(intAnimationDelay).animate({'opacity': '1'}, {duration: 500, queue: true});

我遇到的问题是delay()在2个动画之间增加了延迟。替代方案当然是使用setTimeout(),但我不能这样做,因为这意味着$(this)只是每次都针对相同的元素。

有人可以建议我如何解决这个问题吗?

感谢。

1 个答案:

答案 0 :(得分:0)

你可能在这里不必要地复杂化了一些事情。您可以简单地为同一函数内的其他属性设置动画。这可能就足够了:

var intAnimationDelay = parseInt($(this).attr('data-animate-delay'));
$(this).delay(intAnimationDelay).animate({'margin-top' : '50px', opacity: '1'}, {duration: (500), queue: true});

PS:我认为你的意思是margin-top而不是marginTop。