を私は次の操作を実行したい:simutaneously複数の要素をフェード - jqueryの
$(newPanel, prevBtn, nextBtn, infoPanel).fadeIn(200, function() {
}
これらのVARSはjqueryの
で作成したdivのですが、最初の要素だけがフェードイン、私は本当にフェードインするすべての要素を必要とします同時に。何か案が?
newPanel = $("#newPanel");
だけ書く:
を私は次の操作を実行したい:simutaneously複数の要素をフェード - jqueryの
$(newPanel, prevBtn, nextBtn, infoPanel).fadeIn(200, function() {
}
これらのVARSはjqueryの
で作成したdivのですが、最初の要素だけがフェードイン、私は本当にフェードインするすべての要素を必要とします同時に。何か案が?
newPanel = $("#newPanel");
だけ書く:
あなたは同じjQueryオブジェクトの要素を取得するためにadd
メソッドを使用することができます。
newPanel.add(prevBtn).add(nextBtn).add(infoPanel).fadeIn(200);
newPanel
などがそのように作成された変数であることを仮定し
newPanel.fadeIn(200);
prevBtn.fadeIn(200);
nextBtn.fadeIn(200);
infoPanel.fadeIn(200);
更新
$.each([newPanel, prevBtn, nextBtn, infoPanel], function(i, el) {
$(el).fadeIn(200);
});
:
そして、あなたは、関数を呼び出すしたい場合一度だけ、要素を追加することで何かlike @Guffa didを行うことができます同じjQueryの収集だけにして(1回)アニメーションを適用します。
[newPanel, prevBtn, nextBtn, infoPanel]
.reduce(function(el, next) {
return el.add(next);
})
.fadeIn(200);
これは一度に1つずつ行うのと同じではありませんか? – 472084
どちらかそれは$.each
を使用してくださいそれを使ってクラスやIDでそれらをグループ化してフェードすることをお勧めします。
たとえば、関連するすべての要素をクラスにグループ化し、次にすべての要素ではなくそれらのクラスを呼び出して$.each
を呼び出すことができます。
コールバックを追加すると、そのクラスを持つ各要素に対して実行されますか?私はちょうど一度呼ばれるコールバックをしたい。 @inquam – Wesley
アニメーションが終了したときに呼び出されるコールバックがあれば、そのクラスを使用している要素のコレクション全体に対して1回、またはそのクラスを使用するすべての要素に対して1回トリガーされますか?私は実際に心から知らない。私はそれが各要素に付いていると思うので、それはすべての要素に対して1回トリガーすると思います。これは、コールバックがすでに一度呼び出されているかどうかをチェックすることによって克服することができます。 'if(!firsttime)return;のようなものです。おそらく世界で最も美しいものではないが、それはうまくいくだろう。 – inquam
ああ、それはとてもいいです。次回はそれを試みます。 – inquam
@Guffaコールバックを追加し、コールバックを4回実行しました。これはどんなグループにも当てはまりますか? – Wesley
@Wesley:jQueryオブジェクトに4つの要素があるので、各アニメーションには独自のコールバックがあります。ドキュメントから: "複数の要素がアニメーション化されている場合、コールバックは一致する要素ごとに1回実行され、アニメーション全体では一度だけ実行されないことに注意することが重要です。 http://api.jquery.com/fadeIn/ – Guffa