3

このjsfiddleからわかるように:

http://jsfiddle.net/robcampo/pWGuS/

Angular アニメーションを使用して要素をフェードアウトし、別の要素をフェードアウトしようとしています。

フェード (不透明度とトランジションを使用) が機能します。ただし、ご覧のとおり、現在表示されている要素を非表示にする前に、以前に非表示にした要素を表示します。これにより、両方の要素が同時に表示されます。

質問

2 番目の要素を表示する前に、最初の要素が完全に非表示になるまで待機する方法はありますか? カスタム ディレクティブを使用してこれを実行できることは確かですが、そのルートをたどる前に、すぐに使用できる方法がないことを確認したいと思います。

私が試したこと

a) フェード インする要素に遷移遅延を設定します。

.ng-hide-remove {
    -webkit-transition: all 1s ease 1s;
    transition: all 1s ease 1s;
    opacity: 0;
}

b) 高さのプロパティを使用する

アプリで非表示にしている div はグリッド システムの一部であるため、これはうまくいきません。

ノート

これを jQuery で実装するとしたら、次のようになります。

elementToFadeOut.fadeOut(1000, function() {

    elementToFadeIn.fadeIn(1000);

});
4

1 に答える 1