1

だから私は要素で2つの同時アニメーションを実行していて、両方のアニメーションが終了した後に何かをしたい

        $("#MyDiv").stop().animate({left: "-=" + 500 + "px"}, 1000);
        $("#MyDiv").animate({top: "-=" + 500 + "px"}, 1000, 

function() {
//do something here
});

これが私のアプローチです。最初のアニメーションは数ミリ秒早くまたは遅く終了する可能性があるため、より良いアプローチがあるかどうか疑問に思いました。

2番目の質問:.stop()。animate()と.animate()の間に違いはありますか?はいの場合、それは何ですか?

前もって感謝します!

4

1 に答える 1

4

「最初のアニメーションが数ミリ秒早くまたは遅く終了する可能性があるため」

いいえ、両方のアニメーションを1000msに設定しました。

「.stop()。animate()と.animate()の間に違いはありますか?はいの場合、それは何ですか?」

はい、アニメーションがアクティブでstop()が呼び出されると、最初のアニメーションが停止します。

同じ要素をアニメートしているので、2回選択する必要はありません。私はあなたがこのようなことをすることを提案します:

$("#MyDiv").stop(true).animate({left: "-=" + 500 + "px", top: "-=" + 500 + "px"}, 1000, 
function(){
    //animation complete
});

アニメーションが「スタック」した場合は、stopメソッドに2番目のブール値stop(true, true)(「jumpToEnd」)を追加できます。最初のものはアニメーションキューをクリアします。より多くのコードを使わずに必要なものを言うのは難しいです。

于 2013-01-27T22:33:15.407 に答える