私はng-show
とng-hide
を論理条件に基づいて要素を表示および非表示にすることを可能にするAngularJS
を使用しています。私が達成しようとしているのは、子オブジェクトが表示されているときにコンテナーのサイズ変更をアニメートすることです。CSSを使用して動的な高さをアニメーション化することはできますか? JSの代替案が受け入れられる
AngularJS
に精通していないものについて
、ng-show
とng-hide
は、基本的にはただdisplay: none
とdisplay: block
特性を適用しました。したがって、コンテナがshow
に設定されている場合、ディスプレイはblock
に設定されます。
Google検索のいくつかのページで高さの変化をアニメーション化することについては読んでいますが、私が見つけることができるのはmax-height
を使用して1つの高さから別の高さにアニメーション化する例です。例えばCSSルールは、:
#animated-div {
max-height: 100px;
transition: max-height 1s ease;
}
#animated-div.hidden {
max-height: 0px;
}
、彼らは高さの変化をアニメーション化への移行を引き起こすために.hidden
クラスを削除します。
問題は、コンテナを開閉するつもりはなく、さまざまな変数に基づいてコンテナを動的に変更できるため、コンテナの高さは決まっていません。アプリケーションの応答性が高いので、高さはデバイスによって異なります。ここ
は、例のシナリオである:
- Container
- Div A (Height: 200px); Shown
- Div B (Height: 100px); Shown
- Div C (Height: 300px); Hidden
- Div Slider (Height: Dynamic) Hidden.
現在(auto
ある)容器の高さは、子供に基づい300px
あり、今やユーザは600px
に高さが増加する、本部Cがアクティブトグルdivは300px -> 600px
から展開をアニメーションする必要があります。ユーザーはclear
ボタンをクリックし、コンテナの子はすべて非表示になり、コンテナは600px -> 0px
からアニメーション化されます。
ユーザは、0 to 100
の範囲の値を持つスライダーを使い始めます。この高さはDiv Slider
に適用されます。ユーザーが57にスライドしたとします。0px -> 57px
のアニメーションが表示されるはずです。
申し訳ありませんが、私が欲しいものの詳細な例がありますが、それを説明するために考えられる唯一の方法です。参考までに、コンテナ内の子は、%
の値とvw/vh
の値を使用して動的にスケーリングされます。特定の子の組み合わせがアクティブなときのコンテナのサイズは、異なる解像度では決して同じではないため、動的な高さの変化をアニメートできる必要があります。
このプロジェクトでは、追加のライブラリは必要ありません.Javascriptの例は、最新のモバイルブラウザでも動作する必要があります。