[解決済み] CSS アニメーション vs. トランジション
2022-04-21 23:25:10
質問
ということで、CSS3 の両方を実行する方法は理解できました。 トランジション と アニメーション . ググってみてもよくわからないのは、いつどれを使うかです。
例えば、ボールを跳ねさせたい場合、アニメーションが有効なのは明らかです。私がキーフレームを提供すれば、ブラウザが中間フレームを作成し、素敵なアニメーションが出来上がります。
しかし、どちらを使っても同じ効果が得られる場合があります。例えば、facebookスタイルのスライド式ドロワーメニューを実装するのが一般的な例です。
この効果は、次のようなトランジションで実現できます。
.sf-page {
-webkit-transition: -webkit-transform .2s ease-out;
}
.sf-page.out {
-webkit-transform: translateX(240px);
}
あるいは、こんな風にアニメーションで。
.sf-page {
-webkit-animation-duration: .4s;
-webkit-transition-timing-function: ease-out;
}
.sf-page.in {
-webkit-animation-name: sf-slidein;
-webkit-transform: translate3d(0, 0, 0);
}
.sf-page.out {
-webkit-animation-name: sf-slideout;
-webkit-transform: translateX(240px);
}
@-webkit-keyframes sf-slideout {
from { -webkit-transform: translate3d(0, 0, 0); }
to { -webkit-transform: translate3d(240px, 0, 0); }
}
@-webkit-keyframes sf-slidein {
from { -webkit-transform: translate3d(240px, 0, 0); }
to { -webkit-transform: translate3d(0, 0, 0); }
}
このようなHTMLでは、次のようになります。
<div class="sf-container">
<div class="sf-page in" id="content-container">
<button type="button">Click Me</button>
</div>
<div class="sf-drawer">
</div>
</div>
そして、この付属のjQueryスクリプト。
$("#content-container").click(function(){
$("#content-container").toggleClass("out");
// below is only required for css animation route
$("#content-container").toggleClass("in");
});
私が理解したいのは、これらのアプローチの長所と短所です。
- 明らかな違いとして、アニメーション化することでより多くのコードが必要になることが挙げられます。
- アニメーションはより柔軟性があります。スライドアウトとスライドインに異なるアニメーションを設定することができます。
- パフォーマンスについて言えることはありますか?どちらもH/Wアクセラレーションを活用しているのでしょうか?
- どちらがより現代的で、今後の方向性なのか
- その他に付け加えることはありますか?
解決方法は?
やり方は把握できているようだが、いつやるかはわからない。
遷移 はアニメーション は、2つの異なる状態、つまり、開始状態と終了状態の間で実行されるものだけです。ドロワーメニューのように、開始状態が開いていて終了状態が閉じていることもあれば、その逆もあり得ます。
というものを実行したい場合 はしません。 特に、開始状態と終了状態を伴う場合、またはトランジションのキーフレームをより細かく制御する必要がある場合は、アニメーションを使用する必要があります。
関連
-
[CSSチュートリアル】カットコーナー+ボーダー+プロジェクション+コンテンツ背景色のグラデーション効果を実現するCSS
-
[CSSチュートリアル】 css border add four corners コード
-
[CSSチュートリアル】タイトルを上部に配置するスティッキーレイアウトを実現するためのCSS
-
[CSSチュートリアル】子要素のmargin-topが親要素の移動を引き起こす問題解決
-
[解決済み] CSSの親セレクタはありますか?
-
[解決済み] CSSでcellpaddingとcellspacingを設定する?
-
[解決済み] CSSでテキストや画像の背景を透明にするには?
-
[解決済み] CSSの三角形はどのように機能するのですか?
-
[解決済み] CSSのdisplayプロパティで遷移する
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[CSSチュートリアル]CSSで簡単!高周波な異形ボタンを実現する方法
-
[css3]CSS3タブアニメーションの背景切り替えの動的効果例
-
[CSSチュートリアル】QQtabBarからCSS命名規則BEMの詳細を見る
-
[CSSチュートリアル】CSSのfloatとunfloatについて
-
[CSSチュートリアル】CSSでemを開く正しい方法 詳細へ
-
[CSSチュートリアル】CSS3で3つの効果例の背景をぼかす。
-
[css3] scss変数の値を実行時に変更するcss3 var()の使用方法を説明します。
-
[Div+CSSチュートリアル】divの背景を透明にする設定例
-
[css3]css3アニメーションマウスが絵の上に置かれると徐々に大きくなり、マウスが絵から離れると徐々に縮む効果
-
[CSSチュートリアル]テーブル table :nth-child()を使って行間の色変更と整列を実現する。