動くCSSのためのメモ。
CSSでできる事がどんどん増えてます。JavaScriptを使って実装するようなレイアウトやUIも、CSSだけで作れちゃうほど、便利なプロパティがじゃんじゃか増えましたね。ここでは、要素にアニメーション効果をつけるためのCSSを使ったエフェクトについて、まとめてゆこうと思います:)。
CSSで動かす
「動く」といっても、自由自在にぐにゃぐにゃ動かせるわけではなくて、CSSアニメーションでは、プロパティの数値をスムーズに増減させることで、要素のスタイルを滑らかに変化させます。
例えば、下のサンプルでは、p要素にカーソルを合わせた時に、font-size
の値を、1em
から2em
に、スムーズに変化するように指定しています。
動かすためのマストプロパティ
CSSでアニメーションさせるために必要不可欠なのがtransitionプロパティとanimationプロパティ!関連するプロパティを以下にまとめました。これらを使い倒して、いろいろなエフェクトが表現できます。
transitionプロパティ
- transition-propertyプロパティ
- 効果を適用したいプロパティ名を指定します。
none
all
(初期値)- CSSプロパティ名
transition
を適用できるプロパティは、プロパティの値を数値で表現できるものすべて。color
の値に使われるred
やlightSeaGreen
などの色名も、RGBなどの数値で表すことができるのでちゃんと適用されます。- transition-durationプロパティ
- 変化の開始から完了までにかかる時間を、秒数で指定します。
0s
(初期値)- 秒数
- 1秒(1000ミリ秒) =
1s
(1000ms
)。- transition-timing-functionプロパティ
- 変化の仕方(イージング)を指定します。
ease
(初期値)linear
ease-in
ease-out
ease-in-out
step-start
step-end
steps()
cubic-bezier()
- cubic-bezier関数を使えばオリジナルなイージングを作ることもできます。詳しくはマウスオーバーエフェクトのページで後述。
- transition-delayプロパティ
- 変化を開始するまでの待ち時間を、秒数で指定します。
0s
(初期値)- 秒数
- マイナスの値を指定すると、その分進んだ時点から変化を開始します。
animationプロパティ
- animation-nameプロパティ
- 適用したいアニメーション名を指定します。
none
(初期値)- アニメーション名
- アニメーション名とは@keyframes規則で定義したアニメーションの名前のこと(後述)。
- animation-durationプロパティ
- アニメーションの一回分の長さを、秒数で指定します。
0s
(初期値)- 秒数
transition-duration
と同様。 - animation-timing-functionプロパティ
- アニメーションの仕方(イージング)を指定します。
ease
(初期値)linear
ease-in
ease-out
ease-in-out
step-start
step-end
steps()
cubic-bezier()
transition-timing-function
と同様。- animation-delayプロパティ
- アニメーションを開始するまでの待ち時間を、秒数で指定します。
0s
(初期値)- 秒数
transition-delay
と同様。- animation-iteration-countプロパティ
- アニメーションを繰り返す回数を指定します。
1
(初期値)- 回数
infinite
infinite
は無限にアニメーションが繰り返されます。回数を小数点以下に指定した場合は途中までアニメーションします。- animation-directionプロパティ
- アニメーションする方向を指定します。
alternate
は、偶数回めのアニメーションを逆再生にする指定。 normal
(初期値)reverse
alternate
alternate-reverse
- animation-play-stateプロパティ
- アニメーションを再生させたり一時停止させたりできます。
running
(初期値)paused
- animation-fill-modeプロパティ
- アニメーションの前後に、スタイルをどう適用するかを指定します。※詳しくはマウスオーバーエフェクトのページで後述。
none
(初期値)forwards
backwards
both
- @keyframes規則
- 以下のような書き方でキーフレームを定義します。
キーフレームとは、経過時間に対して、0%
(from
)時点〜100%
(to
)時点、その時々の要素の状態を設定したもの。動きの過程を書き記した台本みたいな感じ。
動かすためのメモ
上で紹介した動かすプロパティを使って、いろんなエフェクトを作ってみました。ご参考まで:D!