Open2
cssアニメーションについて

アニメーションについて
cssには大きく分けて2つのアニメーションがある。
transitonについて
- 簡単なアニメーションで動きはシンプルで細かいカスタムは不可。
-
:hover
や :active
などがトリガーとなりアニメーションが動く、逆を言うと:hover
などの要素の変化がなければtransitonは動作しない。 - 使い所は工数をかけずにサクッとhover時に変化を持たせたいときに使うことが多い。よくあるのはボタンのホバー時の色変化や文字の変化など。
animationについて
- transitionに比べanimationプロパティは複雑なアニメーションを作成できる。
- トリガーは特になく、自動的にアニメーションが開始する(発火タイミングは指定可能)
- 複雑なアニメーションや繰り返し動作などがあるときはこちらのanimationプロパティを使用する
主な違い
特性 | animation |
transition |
---|---|---|
開始タイミング | 自動で開始 | 状態変化(hover、activeなど)で開始 |
動きの柔軟性 | 複雑な動きを設定可能 | 単純な開始から終了の動き |
ループ | 繰り返し設定(infinite )が可能 |
繰り返しは不可 |
使用用途 | シーケンスアニメーションや繰り返し動作 | 状態変化による短いアニメーション |
※シーケンスアニメーションとは複数のステップに分かれ位置や色大きさなど時間経過と主に順番に実行されれるアニメーションのこと。
※要するに @keyframeで0%, 50%, 100%とアニメーションのステップを指定でき各ステップで位置や色の変化を記載でき0%から順番に実行されていくこと。

CSS Animation プロパティのまとめ
animationプロパティには設定できる項目が結構あるのでメモ。
指定できる項目
-
@keyframe名
(必須)- アニメーションの名前、fade-inとかよく見る。そのアニメーションがどんな動きなのかを名前にすると良さそう。
-
duration
(秒数)(必須)- アニメーションの継続時間。
- 例:
2s
、500ms
- 例:
- アニメーションの継続時間。
-
timing-function
(時間関数)- アニメーションのスピードカーブ。
-
linear
(等速) -
ease
(デフォルト) -
ease-in
、ease-out
、ease-in-out
-
cubic-bezier(n, n, n, n)
(カスタムベジェ曲線、これがややこしい)
-
- アニメーションのスピードカーブ。
-
delay
(遅延)- アニメーションの開始までの遅延時間。
- 例:
1s
、200ms
- 例:
- アニメーションの開始までの遅延時間。
-
iteration-count
(繰り返し回数)- アニメーションの繰り返し回数。
- 例:
3
(数値)、infinite
(無限)
- 例:
- アニメーションの繰り返し回数。
-
direction
(再生方向)- アニメーションの再生方向。
-
normal
(デフォルト、通常の再生) -
reverse
(逆方向に再生) -
alternate
(通常と逆を交互に再生) -
alternate-reverse
(逆と通常を交互に再生)
-
- アニメーションの再生方向。
-
fill-mode
(終了後の状態)- アニメーション終了後のスタイル。
-
none
(デフォルト、元の状態に戻る) -
forwards
(終了時の状態を維持) -
backwards
(開始前の状態を適用) -
both
(開始前と終了後の両方を維持)
-
- アニメーション終了後のスタイル。
-
play-state
(再生状態)- アニメーションを再生するか一時停止するか。
-
running
(デフォルト、再生中) -
paused
(一時停止)
-
- アニメーションを再生するか一時停止するか。
結局使うのはどこらへん?
必須項目以外でよく使うのはtiming-function
と delay
とかだと思っている。
あとは調べればなんとかなるので覚えなくても良さそう。