javascript - jQuery 多个 animate() 回调

标签 javascript jquery function callback jquery-animate

我正在尝试同时为一组元素设置动画(几乎每个动画之间都有一个小延迟):

$('.block').each(function(i){
   $(this).stop().delay(60 * i).animate({
     'opacity': 1
   }, {
      duration: 250,
      complete: mycallbackfunction // <- this fires the callback on each animation :(
   });
});

如何在所有动画完成后运行回调函数?

最佳答案

在计数器变量周围使用闭包。

var $blocks = $('.block');
var count = $blocks.length;
$blocks.each(function(i){
   $(this).stop().delay(60 * i).animate({
     'opacity': 1
   }, {
      duration: 250,
      complete: function() {
        if (--count == 0) {
          // All animations are done here!
          mycallbackfunction();
        }
      }
   });
});

注意将项目列表保存到 $block 变量中以保存查找。

关于javascript - jQuery 多个 animate() 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5823403/

相关文章:

php - 406 和 404 错误 - 仅 Firefox 有问题?

javascript - 循环对象数组和格式值

javascript - React-native导航栏颜色更改错误

javascript - getJSON 值每个

javascript - 使用 jQuery,如何使用 "live"方法在添加新元素时发出警报?

javascript - 在点击处理函数上重写 jQuery

javascript - 在 Javascript 中制作数字表程序(如 12 x 1 = 12)时出现问题

javascript - 当相同的 IF 语句有效时,SWITCH 语句不起作用(Java 脚本)

javascript - 通过匹配属性键而不是值来查找元素

setInterval 中的 Javascript 函数