私は何がうまくいかないのか分からないアニメーションを持っています。私のフェードイン/アウトの遅延は尊重されません。私はタイルをフェードアウトし、新しいタイルに置き換えてフェードインしようとしています。これはこの場合4回実行されますが、それによってforループが変わる可能性があります。forループ内でjqueryをアニメーション化する
ここに私のコードの短縮版があります。クリックアクションでは、4枚のタイルは新しいタイルに置き換えられますが、アニメーションには遅延が存在しない、でも最初のアニメーションの2番目のパラメータがerror.should機能である2000年
for (var i = 0; i < animation.length; i++) {
animation[i]['old']
.animate({ opacity: 0 }, {
duration: 500,
queue: function() {
jQuery(this)
.replaceWith(self.template(animation[i]['new']))
.css({ opacity: 0 })
.animate({ opacity: 100 }, 2000);
}
});
}
fadeIn/outメソッドは非同期なので、すべて同時に実行される可能性があります。より良い入力を与えるにはコードを貼り付けてください –
他の問題もありますが、これは1つの問題です:http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example –
私がこれを使うと: $ tile.animate({opacity:0}、1500).delay(1500); $ tile.replaceWith(self.template(newTile).css({opacity:0}))。遅延(2000)。 fadeOutアニメーションがもう機能しないことがわかりました。したがって、replaceWith()関数と関係があります。 – Chris