この記事では、CSSプロパティの変更をスムーズにアニメーション化する方法CSS遷移について説明します。トランジションプロパティを使用して実装を詳しく説明し、期間とタイミング機能を指定します。この記事では、移行をアニメーション、highligと比較します
CSS遷移は、指定された期間にわたってCSSプロパティの変化をスムーズにアニメーション化する方法を提供します。 JavaScriptアニメーションライブラリの複雑さなしに、微妙で魅力的なユーザーインターフェイス効果を作成するのに非常に便利です。基本的に、さまざまなスタイル間で徐々に移行することができ、変化をより自然で突然に感じさせることができます。
CSS遷移の実装には、3つの重要な部分が含まれます。
transition
プロパティ:これがCSS遷移の中核です。引数として1つ以上のプロパティ名を取得し、どのCSSプロパティが遷移するかを指定します。コンマで区切られた複数のプロパティをリストできます。例: transition: background-color, transform 0.5s ease;
。この行には、ブラウザがbackground-color
とtransform
プロパティの両方を、 ease
タイミング関数を使用して0.5秒にわたって変換するように指示します。background-color
、 width
、 opacity
、 transform
、 border-radius
)です。ease
、 linear
、 ease-in
、 ease-out
、 ease-in-out
、 cubic-bezier()
)。 ease
デフォルトであり、スムーズでわずかに加速された開始と終了を提供します。 linear
一定の速度を提供します。 cubic-bezier()
遷移曲線をきめ細んの制御を提供します。例:
<code class="css">.element { background-color: red; transition: background-color 0.5s ease; } .element:hover { background-color: blue; }</code>
この例では、ユーザーが.element
を越えると、背景色が0.5秒間にわたって赤から青に滑らかに移行します。遷移は、 background-color
プロパティが変更されたときにのみ発生します。他のプロパティの変更は瞬時になります。
はい、絶対に! transition
プロパティは、コンマを分離したプロパティのリストを受け入れます。これにより、それらのプロパティの変更のタイミングに応じて、同期または非同期に複数のCSSプロパティを一度にスムーズにアニメーション化できます。
例:
<code class="css">.element { background-color: red; transform: scale(1); transition: background-color 0.5s ease, transform 0.3s ease-in-out; } .element:hover { background-color: blue; transform: scale(1.2); }</code>
この例では、 background-color
とtransform
プロパティの両方が同時に遷移しますが、さまざまな期間とタイミング機能があります。背景色はease
を使用して0.5秒を超えて遷移しますが、変換はease-in-out
を使用して0.3秒以上遷移します。
CSSの移行とアニメーションの両方が要素をアニメーション化する方法を提供しますが、目的と実装が大きく異なります。
特徴 | CSS遷移 | CSSアニメーション |
---|---|---|
トリガー | CSSプロパティの変更 |
@keyframes ルールおよび関連するCSSプロパティ |
間隔 | プロパティごと、単一期間ごとに指定されています | アニメーションごとに指定され、可能な複数のキーフレーム |
複雑 | 基本的な遷移のためのよりシンプル | より複雑なアニメーションのために、より複雑です |
コントロール | アニメーションの詳細に対する制御が少ない | よりコントロール、複数のキーフレーム、タイミング機能 |
反復 | プロパティの変更ごとの単一の移行 | 無期限に繰り返すことができます( animation-iteration-count ) |
方向 | 一方向、初期状態から最終状態まで | 異なる方向に逆転または再生できます |
本質的に、トランジションは、イベント駆動型のシンプルなアニメーション(ホバーエフェクトなど)に最適ですが、アニメーションは複雑でマルチステージ効果により多くのパワーとコントロールを提供します。遷移はリアクティブです。アニメーションは積極的です。
パフォーマンスのためにCSS遷移を最適化するには、ブラウザの計算負荷を最小限に抑える必要があります。
transform
のようなプロパティの遷移は、レイアウトの再計算をトリガーしないため、 width
、 height
、またはmargin
のようなプロパティの遷移よりもパフォーマンスが高くなります。cubic-bezier()
はきめ細かい制御を提供しますが、 ease
、 linear
などのシンプルなタイミング関数よりも計算的に高価です。transform
プロパティを使用した遷移は、多くの場合、ハードウェアアクセラレーションされているため、大幅に高速になります。width
、 height
、 margin
、 padding
)を頻繁にトリガーするプロパティでの遷移を使用しないでください。これにより、ブラウザのレンダリングエンジンのワークロードが削減されます。これらのガイドラインに従うことにより、ウェブサイトのパフォーマンスを犠牲にすることなく、CSSトランジションを使用して視覚的に魅力的なアニメーションを作成できます。
以上がCSS遷移とは何ですか?それらを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。