css3]アニメーションとトランジションの違いについて
CSS3アニメーションとJSアニメーションの違いについて
JSはフレームアニメーションを実装している
CSS3によるインターバルアニメーションの実装
- フレームアニメーション:タイマーを使って、一定時間ごとに現在の要素を変化させます。
- インターバルアニメーション:トランジション(状態が変化するたびにアニメーションするトランジションを追加)アニメーション(複数のノードでアニメーションを制御)パフォーマンスが向上する
トランジション
transition はアニメーションの簡易版とも言えるプロパティで、使い勝手の良さからイベントトリガーと組み合わせて使われることが多いです
transitionのプロパティ値
<テーブル 説明 属性 トランジションプロパティ 遷移が必要なプロパティで、all, not block, noneなども可能です。 遷移時間 あるプロパティから別のプロパティへの遷移にかかる時間を指定する。デフォルト値は 0 で、これは変化が即座に起こり、遷移の効果が見えないことを意味する トランジションタイミング機能 はトランジションのためのアニメーションのタイプです。利用可能なタイプは、liner(均一)、ease-in(減速)、ease-out(加速)ease-in-out(加速の後に減速)、cubic-bezier:3次ベジェ曲線、これはカスタマイズ可能です。 トランジションディレイ 遷移動作を検出し、一定時間遅延させてから実行を開始することを指定する
トランジション機能
遷移はイベント(ホバー擬似クラスの追加など)によって引き起こされる必要があり、ページがロードされたときに自動的に起こることはできません。
一度だけで、何度も起動させない限り、繰り返し使用することはできません。
開始状態と終了状態の2つの状態のみ
遷移ルールは1つの属性しか定義できない
<body>
<div ></div>
</body>
<style>
.box {
height: 100px;
width: 100px;
background-color: lightpink;
transition: width 1s 0.5s ease-in-out;
}
.box:hover {
width: 200px;
}
</style>
その効果は次のとおりです。
また、このコードを
hover
で
transition: width 1s 0.5s ease-in-out
.box:hover {
width: 200px;
transition: width 1s 0.5s ease-in-out;
}
<body>
<div ></div>
</body>
<style>
.box {
height: 200px;
width: 200px;
animation: 3s type forwards alternate infinite;
animation-play-state: running;
}
.box:hover {
animation-play-state: paused;
}
@keyframes type {
from {
background: yellowgreen
}
50% {
background: yellow
}
to {
background: aquamarine
}
}
</style>
実際にホバーでの書き込みはうまくいくのですが、要素から外れると遷移せずにすぐに要素の幅が元に戻ってしまうのです
理由は簡単で、トランジションはホバー時にのみ書き込まれ、つまりマウスが上に移動した時にのみ擬似クラスが有効になるためです。
アニメーション
アニメーションのプロパティ値
<テーブル 属性 説明 アニメーション名 keyframesで定義されたアニメーションと同じ名前で呼び出すために使用します。 アニメーション時間 アニメーションが一巡するのにかかる秒数またはミリ秒を指定します。デフォルトは0 アニメーションタイミング機能 速度曲線、transition-timing-functionと同様、利用可能なタイプはliner(均一)、ease-in(減速)、ease-out(加速)ease-in-out(加速後減速)、3次ベジェ:3次ベジェ曲線、カスタマイズ可能。 アニメーションディレイ アニメーションを開始するタイミングを指定します、デフォルトは0です アニメーションの繰り返し回数 アニメーションの再生回数を指定します。デフォルトは1 アニメーション方向 デフォルトのnormalに設定すると、アニメーションはループするたびに順方向に再生されます。alternate(回転)に設定すると、偶数時に順方向に、奇数時に逆方向に再生されます(animation-iteration-countに1以上の値を設定すると有効です)。 アニメーション再生状態 を実行している場合、この値を使用すると、要素のアニメーションの最初からではなく、一時停止した位置から、一時停止、一時停止、一時停止と再生することができます。 アニメーションフィルモード animation-fill-mode プロパティは、アニメーションが終了した後の要素のスタイルを制御します。主な値は次の 4 つです: none(デフォルト、アニメーションが開始されていないときの状態に戻る) forwards(アニメーション終了後も終了時の状態のまま) backwords(最初のフレームの状態に戻る) and both(アニメーション方向に従って順方向と逆方向のルールが順番に適用される)。
<body>
<div ></div>
</body>
<style>
.box {
height: 200px;
width: 200px;
animation: 3s type forwards alternate infinite;
animation-play-state: running;
}
.box:hover {
animation-play-state: paused;
}
@keyframes type {
from {
background: yellowgreen
}
50% {
background: yellow
}
to {
background: aquamarine
}
}
</style>
マウスインで一時停止、マウスアウトで色変更継続
トランスフォーム
まず注意すべきは、transform プロパティは静的で、スタイルに書き込まれるとすぐに直接表示され、アニメーションは発生しないことです
transformプロパティを使用すると、要素を移動(translate)、拡大縮小(scale)、回転(rotate)、反転(skew)させることができ、より詳しいパラメータはCSS3 transformプロパティで確認できます。
概要
<テーブル 区別する トランジション アニメーション を自動的に実行することは可能ですか? いいえ、ホバーなどのイベントによってトリガーされる必要があります。 できます 再発する可能性がある ただし、一度でもトリガーされた場合は除く 可 複数の状態を含むことができる いいえ、開始と終了の状態のみ はい、例えば、0%から100%までの任意の遷移状態を指定します。 一時停止機能 いいえ、1回限り はい、例えばホバーイベントは一時停止をトリガーします。 速度プロファイルを定義できるか できます。 缶 プロパティ値の遷移を定義することができる 可能 缶
アニメーションやトランジションに関する詳しい情報は、Script Houseの他の関連記事でご覧いただけます。
関連
-
[CSSチュートリアル】CSSで2カラムレイアウトを実現するN種類のメソッド
-
[CSSチュートリアル】新しいCSS:whereと:is擬似クラス関数とは?
-
[css3]css3によるフレックスレイアウト幅の解決方法が有効でない件
-
[css3]CSS3は本当にSCSSに取って代わるのだろうか?
-
[CSSチュートリアル】cssプロパティ width デフォルト値 width: auto と width: 100% の違いを解説。
-
[CSSチュートリアル】ピュアCSS3による水平無限スクロールのサンプルコード
-
[css3]シンプルな白い雲の浮かぶ背景効果を実現するcss3
-
左上または右上にリマインダーのドットを表示するCSS3サンプルコード[CSSチュートリアル
-
[CSSチュートリアル】CSSマージンの重なりと解決策を詳しく探る
-
[CSSチュートリアル】css3 背景画像 半透明 コンテンツ 不透明 方法例
最新
-
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チュートリアル】height:100%と書いても効かない理由
-
[CSSチュートリアル】ピュアCSSで実装した通知バーの3種類のスクロール効果
-
[CSSチュートリアル]CSS動的高さ遷移のアニメーション効果の実装の
-
[css3]CSS3アニメーションによる光のボタンの流れの効果
-
[CSSチュートリアル]モバイルにおけるviewportの具体的な使い方
-
[CSSチュートリアル】画面全体に広がるアダプティブな高さを実現するCSS
-
[css3]css3 elastic box flexによる3カラムレイアウトの実装。
-
[css3】background属性の8つの属性値について解説(インタビュー記事)