Я анимирую элементы html (карты), используя jquery. Мне нужно оживить раздающее действие («один ты для тебя, один для меня, один ты, один для меня ...»), поэтому я хочу, чтобы карты полностью оживили (позиция перемещения) до начала следующего. Я создаю карты в функции $ .each и вызываю анимацию оттуда (чтобы избежать ненужного повторения цикла). Когда карта добавляется на страницу, анимация запускается, но затем цикл переходит на следующую карту, не дожидаясь окончания анимации. Это приводит к тому, что все карты выглядят анимированными одновременно, а не последовательно. Как заставить цикл ждать обратного вызова анимации? Можно ли это сделать с помощью триггеров? Могу ли я вручную поставить элементы в очередь?
Урезанная версия моего (ошибочного) кода:
var card = [
{ id:1, pos:{ x:100, y:100 } },
{ id:2, pos:{ x:150, y:105 } },
{ id:3, pos:{ x:200, y:110 } }
];
$.each(card, function() {
$('#card_' + this.id).animate({ top:this.pos.y, left:this.pos.x });
});
Демо @ http://jsbin.com/akori4