「@keyframes」でアニメーションの「名前」と動き(変化)の設定をします。
動き(変化)は、始め(0%)と終わり(100%)のプロパティを指定します。
今回は名前を「anime1(任意です)」、変化の仕方を「背景色を赤から青に変化」という指定にしました。
スタイルシートに以下のように記述します。
@keyframes anime1{
0% {background: red;}
100% {background: blue;}
}
次に、animationプロパティを任意のセレクタに指定します。
最低限必要な値は、先ほど作成したキーフレーム名(任意)と「アニメーション1回の秒数」です。
今回は、先ほど作成したキーフレーム名「anime1」を使い、アニメーション1回の秒数は「5秒」としました。
div {
width: 100px;
height: 100px;
animation: anime1 5s;
}
今回作成した動きが以下になります。
デモ1
(1度しか再生しません。ページを再読み込みすると始めから再生します)
/*/_/_/_/_/_/_/_/_/
アニメーション
/_/_/_/_/_/_/_/_*/
div {
width: 100px;
height: 100px;
animation: anime1 5s;
}
/*/_/_/_/_/_/_/_/_/
キーフレーム
/_/_/_/_/_/_/_/_*/
@keyframes anime1{
0% {background: red;}
100% {background: blue;}
}
今のままでは一回こっきりしか再生しないので、繰り返し再生にしてみます。
また、「●秒掛けて変化し、●秒掛けて戻る」設定もしてみましょう。
animationプロパティに次の値を付け足します。
繰り返す設定は「infinite」、
●秒掛けて変化し、●秒掛けて戻る設定は「alternate」です。
/*/_/_/_/_/_/_/_/_/
アニメーション
/_/_/_/_/_/_/_/_*/
div {
width: 100px;
height: 100px;
animation: anime1 5s infinite alternate;
}
/*/_/_/_/_/_/_/_/_/
キーフレーム
/_/_/_/_/_/_/_/_*/
@keyframes anime1{
0% {background: red;}
100% {background: blue;}
}
上記のようにすると以下の動きになります。
5秒掛けて変化し、5秒掛けて戻る、を繰り返します。
指定するセレクタに擬似クラス「:hover」を指定すれば、
マウスオーバーするとアニメーションするように出来ます。
(5秒じゃまどろっこしいので、変化時間を0.5秒にしました。)
/*/_/_/_/_/_/_/_/_/
アニメーション
/_/_/_/_/_/_/_/_*/
div {
background: red;
width: 100px;
height: 100px;
}
div:hover {
animation: anime1 0.5s infinite transparent;
}
/*/_/_/_/_/_/_/_/_/
キーフレーム
/_/_/_/_/_/_/_/_*/
@keyframes anime1{
0% {background: red;}
100% {background: blue;}
}