JQuery queue / delay () внутри каждой функции - PullRequest
1 голос
/ 22 октября 2011

Я бы хотел, чтобы эта функция задерживала каждую анимацию внутри каждой функции.Это один за другим.На данный момент все они проходят вместе.

$('.bounceholder ul:eq(' + bounceholder + ') li').each(function(){
            $(this).delay(1000).animate({left: bounceoffset, top:-8, opacity:0.6, leaveTransforms:true}, {duration:600, queue:true});
            bounceoffset += 160;
        });

Ответы [ 2 ]

3 голосов
/ 22 октября 2011

блок / функция, которую вы передаете each, может принять счетчик / индекс в качестве первого аргумента:

$('.bounceholder ul:eq(' + bounceholder + ') li').each(function(i){
  delay = (i + 1) * 1000
  $(this).delay(delay).animate({left: bounceoffset, top:-8, opacity:0.6, leaveTransforms:true}, {duration:600, queue:true});
  bounceoffset += 160;
});
0 голосов
/ 12 апреля 2012
function DoAnimation(items, delay, bounceOffSet) {
    $(items[0]).animate({left: bounceoffset, top:-8, opacity:0.6, leaveTransforms:true}, {duration:600, queue:true})
        .delay(delay)
        .promise()
        .done(function() {
            items.splice(0, 1);
            if (items.length > 0)
            {
                DoAnimation(items, delay, bounceOffSet + 160);    
            }            
    });       
}

var items = $('.bounceholder ul:eq(' + bounceholder + ') li');

DoAnimation(items, 1000, 0);
...