前回、ボタンにカーソルを乗せるとふわっと拡がる例を見ました。あの「ふわっ」の正体が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 | 勢いよく始まって、ゆっくり終わる |
このレッスンのまとめ
transitionをつけると、値の変化がなめらかになる- 書き方は
プロパティ名 時間 イージング allで全プロパティ、カンマ区切りで複数指定できるtransitionは変化前の要素につける