Webアニメーション・はじめの一歩

なめらかに変化させるtransition

色や大きさが「パッ」と切り替わるのを「ふわっ」に変える。CSSアニメーションの入り口、transitionを学びます。

前回、ボタンにカーソルを乗せるとふわっと拡がる例を見ました。あの「ふわっ」の正体がtransitionです。

何もつけないと「パッ」と切り替わる

まずはtransitionが無いとどうなるか見てみましょう。

色も角の丸みも、カーソルを乗せた瞬間にカクッと切り替わります。

transitionをつけると「ふわっ」に変わる

同じCSSに、transitionを1行足すだけです。

同じ変化なのに、印象がまったく違いますね。

transitionの書き方

<div class="box">ホバーしてみて</div>
.box {
  transition: background-color 0.4s ease;
}

スペース区切りで、こういう意味を持ちます。

部分役割
background-color何を変化させるか(プロパティ名)
0.4sどれくらいの時間をかけるか
ease変化のリズム(イージング。後述)

複数のプロパティを同時になめらかにしたいときは、カンマで区切って並べます(上の例のbackground-color 0.4s ease, border-radius 0.4s easeのように)。全部まとめてなめらかにしたいときは、プロパティ名の代わりにallも使えます。

<div class="box">ホバーしてみて</div>
.box {
  transition: all 0.4s ease;
}

イージング:変化のリズム

easeの部分を変えると、変化の「勢いのつき方」が変わります。

動きの感じ
easeゆっくり始まって、ゆっくり終わる(既定値・自然な感じ)
linear最初から最後まで一定の速さ
ease-inゆっくり始まって、勢いよく終わる
ease-out勢いよく始まって、ゆっくり終わる

このレッスンのまとめ

  1. transitionをつけると、値の変化がなめらかになる
  2. 書き方はプロパティ名 時間 イージング
  3. allで全プロパティ、カンマ区切りで複数指定できる
  4. transition変化前の要素につける