transitonプロパティを使って、時間的な変化を付けることが出来ます。
変化する変化速度や開始のタイミング、また要する時間などをCSSのみで実現が可能です。
ただし、対応ブラウザの問題がありますので注意が必要です。
※IE8,9は対象外、iOS,Androidはベンダープレフィックス必須
(参考:Can I Use)
■ 各プロパティ
transition-property | 効果を付ける対象になるプロパティ名 |
transition-duration | 変化にかける時間 |
transition-timing-function | 変化の仕方を指定 |
transition-delay | 変化をはじめるまでの時間 |
複数の指定をする場合には、値を記述する順番に注意してください。
「transition-property,transition-duration,transition-timing-function,transition-delay」の順番で指定するようにします。
単体で指定する場合等では、時間として指定される1番目の値は「transition-duration」として認識され、2番目に指定された値は「transition-delay」として認識します。
記述例)
transition: font-size 2s ease 1s;
(フォントサイズを1秒後に2秒間かけて開始と終了を滑らかに変化させる)
■ 初期値
transition-property | none |
transition-duration | 0 |
transition-timing-function | ease |
transition-delay | 0 |
■ transition-timing-functionの値
一般的にイージングと呼ばれる速度変化の指定にはいくつかあります。
ease | 開始と終了を滑らかに |
linear | 一定の速度で |
ease-in | 開始をゆっくり |
ease-out | 終了をゆっくり |
ease-in-out | 開始と終了をゆっくり |
● 実際のサンプルを見てみます。
- 背景色と文字色を変化させる
- 景サイズと背景色を変化させる
1.背景色と文字色を変化させる場合
▼HTMLを記述
1 2 3 |
<article class="animationArea1"> <p>マウスオーバーすると背景の色が変化します。</p> </article> |
▼CSSを記述
1 2 3 4 5 6 7 8 9 10 11 |
.animationArea1 { transition:background-color 3s linear 0, color 3s linear 0; background-color:#ede4cd; color:#69821b; padding:15px; text-shadow:none; } .animationArea1:hover { background-color:#69821b; color:#ede4cd; } |
2.背景色と背景サイズ、文字サイズを変化させる場合
▼HTMLを記述
1 2 3 |
<article class="animationArea2"> <p>マウスオーバーすると背景サイズと背景色が変化します。</p> </article> |
▼CSSを記述
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
.animationArea2 { transition:background-color 2s 0,width 2s 0,height 2s 0,font-size 2s 0; background-color:#93b69c; width:200px; height:50px; color:#FFF; padding:15px; text-shadow:none; font-size:13px; } .animationArea2:hover { background-color:#47885e; width:500px; height:150px; font-size:18px; } |
以上になります。