【问题标题】:How to animate blocks one after the other?如何一个接一个地为块设置动画?
【发布时间】:2018-09-13 10:36:45
【问题描述】:

使用这段 JavaScript,我希望通过添加时间超过 500 毫秒的 CSS 动画类,一个接一个地为一些块元素设置动画。

不幸的是,它等待了一次,并且所有的盒子在等待后立即向上滑动。

这是目前为止的脚本:

var blocks = $('.block');

blocks.each(function(index, obj) {
    var block = $(obj);
    setTimeout(function() {
        block.addClass('animated slideInUp');
    }, 500);
});

那么,如何异步添加这些类,以便页面上的框一个接一个地向上滑动?

【问题讨论】:

  • 您可以将时间除以块数。然后,在 setTimeout 内部,将每次迭代的时间从 0 增加到 500。

标签: javascript jquery animate.css


【解决方案1】:

您可以考虑each() 循环的index,这样setTimeout() 中的时间将是500 的倍数。这样,这些框将出现在每个500 毫秒内,因为setTimeout() 的超时时间为50010001500、...等等。

var blocks = $('.block');
blocks.each(function(index, obj) {
    var block = $(obj);
    setTimeout(function() {
        block.addClass('animated slideInUp');
    }, 500*index);
});

【讨论】:

  • 您可以使用已经存在的index 来获得相同的效果。
  • 优雅的解决方案,谢谢。我期待着承诺、激光和爆炸。但我猜这很好用。
  • @Floris 很高兴为您提供帮助 :)
猜你喜欢
  • 2015-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-26
  • 2013-04-25
  • 1970-01-01
  • 2016-12-31
  • 1970-01-01
相关资源
最近更新 更多