fade
現在、モーダル div にクラスを追加することにより、モーダル スライド ダウン効果が行われます。cssを変更することで、横から(または下から)スライドする効果を変更することはできますか?これを行う方法に関する情報をオンラインで見つけることができず、自分でこれを行うのに十分な css を知りません。
html:
<div id='test-modal' class='modal fade hide'>
<div>Stuff</div>
</div>
fade
現在、モーダル div にクラスを追加することにより、モーダル スライド ダウン効果が行われます。cssを変更することで、横から(または下から)スライドする効果を変更することはできますか?これを行う方法に関する情報をオンラインで見つけることができず、自分でこれを行うのに十分な css を知りません。
html:
<div id='test-modal' class='modal fade hide'>
<div>Stuff</div>
</div>
Bootstrap 3 は、GPU ハードウェア アクセラレーションを使用してアニメーションを改善するために、CSS トランジションの代わりに CSS トランスフォーム translate3d を使用するようになりました。
次の CSS (サン イージング) を使用します。
.modal.fade .modal-dialog {
-webkit-transform: translate3d(0, -25%, 0);
transform: translate3d(0, -25%, 0);
}
これは、左側からスライドインするために使用できる CSS です。
.modal.fade:not(.in) .modal-dialog {
-webkit-transform: translate3d(-25%, 0, 0);
transform: translate3d(-25%, 0, 0);
}
負のセレクターに注意してください。これは、「.modal.in .modal-dialog」の定義が干渉しないようにするために必要であることに気付きました。注: 私は CSS の達人ではないので、誰かがこれをよりよく説明できる場合は、お気軽に :)
さまざまな側面からスライドインする方法:
translate3d(0, -25%, 0)
translate3d(0, 25%, 0)
translate3d(-25%, 0, 0)
translate3d(25%, 0, 0)
さまざまなスライド方向を組み合わせて一致させたい場合は、「左」などのクラスをモーダルに割り当てることができます...
<div class="modal fade left">
...
</div>
...そして、それを具体的にCSSでターゲットにします:
.modal.fade:not(.in).left .modal-dialog {
-webkit-transform: translate3d(-25%, 0, 0);
transform: translate3d(-25%, 0, 0);
}
おまけ- 少しおどけて、斜めに滑り込むことができます。
translate3d(-25%, -25%, 0)
translate3d(25%, -25%, 0)
translate3d(-25%, 25%, 0)
translate3d(25%, 25%, 0)
更新 (05/28/15): 別の角度を表示するようにフィドルを更新しました
これを LESS テンプレートで使用する場合は、BS3 のベンダー プレフィックス mixin を使用できます (含まれている場合)。
.modal.fade:not(.in) .modal-dialog {
.translate3d(-25%, 0, 0);
}
この情報は古くなっています。Bootstrap 3 では、これを別の方法で処理するようになりました。新しいバージョンを使用している場合は、更新された回答を参照してください。
「スライドイン」遷移は、実際にはブートストラップ css によって処理されます。具体的には、次の部分で処理されます。
// bootstrap.css
.modal.fade {
top: -25%;
-webkit-transition: opacity 0.3s linear, top 0.3s ease-out;
-moz-transition: opacity 0.3s linear, top 0.3s ease-out;
-o-transition: opacity 0.3s linear, top 0.3s ease-out;
transition: opacity 0.3s linear, top 0.3s ease-out;
}
.modal.fade.in {
top: 50%;
}
トランジションの方向を変更するには、これらのスタイルを追加するだけです (ブートストラップ css は将来のバージョンで更新されるため、独自のスタイルシートに)。これらは、ブートストラップ スタイルを上書きします。左からモーダル スライドインを行うには、次のようにします。
.modal.fade {
left: -25%;
-webkit-transition: opacity 0.3s linear, left 0.3s ease-out;
-moz-transition: opacity 0.3s linear, left 0.3s ease-out;
-o-transition: opacity 0.3s linear, left 0.3s ease-out;
transition: opacity 0.3s linear, left 0.3s ease-out;
}
.modal.fade.in {
left: 50%;
}
ここでjsfiddle を使用します。
右から左に遷移するには、遷移元のモーダルに大きな正のパーセンテージを指定し、モーダルの最終静止位置をそれぞれの方向に変更します。例えば.modal.fade { left: 200%; } ... .modal.fade.in { left: 50% };
CSS トランジションの詳細については、こちらをご覧ください。