animations:[
trigger('slide', [
state('show', style({
height: '*'
})),
state('hide', style({
position: 'relative',
height: 0,
overflow: 'hidden'
})),
transition('show <=> hide',animate('130ms ease-out'))
])
]
これは、説明するのは非常に困難である(と私はアニメーションがplunker上で動作するように取得するように見えることはできません)私のコンポーネントにアタッチ、次のアニメーションコードを持っていますが、ここに行く。
次のように現在の機能は次のとおり
- ユーザがテーブルを表示するためのボタンをクリックします。
- テーブルはdivの下からスムーズにスライドして表示されます。
- ユーザーがもう一度ボタンをクリックします。
- テーブルからスムーズにビューの外にスライドします。次のように
所望の機能がある:
- ユーザがテーブルを表示するためのボタンをクリックします。
- テーブルはdivの下からスムーズにスライドして表示されます。
- より多くの行がテーブルに追加され
- アニメーションは、新しいテーブルの高さを処理しだけ瞬時に表示される代わりに、徐々に新しい高さに移動する平滑アニメーションがある(多数の行であってもよいです)。
- ユーザクリックボタン。
テーブルのスライドをdivの下に再びバックアップします。
編集:こちらはplunkerデモです。テーブルから行を追加/削除すると、アニメーションが新しい高さにスムーズに移動しないことがわかります。
問題
はあなたが 真状態になっていると行が追加されるので、場合に発生します。すでに真になっているため、アニメーションは真のに再び移行しません。
アイテムが追加されたとき、どのように「newHeight」状態への遷移をトリガーしますか?
問題は、要素が作成されたときにのみ高さが計算されることに関連しています。アニメーションAPIに強制的に再計算させることはできないと思います。 – Ploppy
多分このソリューションはあなたにとって役に立ちます: https://stackoverflow.com/a/47492134/5155810 –