1.animation-direction
animation-directionプロパティはアニメーション再生順を指定するプロパティで値にはキーワードを入れます。
セレクター{
animation-direction: 値;
}
初期値は”normal”になっています。
ボタンのon / offで切り替わります
on/off
こばゆた
その他の値も見ていこうと思います。
1-1.alternate
値を”alternate”にすると終了時に逆再生しながら戻ってきます。
セレクター{
animation-direction: alternate; /*アニメーション終了時に折り返してくる*/
}
A.単一のアニメーションの場合
ボタンのon / offで切り替わります
on/off
/*keyframesの設定*/
@keyframes translate{
100%{
transform: translateX(200px); /*100%の時にX軸に200px移動する*/
}
}
/*アニメーションの設定*/
.dragon{
animation-name: translate; /*keyframesの名前は"translate"*/
animation-duration: 1.3s; /*アニメーションの時間は1.3秒*/
animation-direction: alternate; /*アニメーション終了時に折り返してくる*/
}
B.アニメーションを細かく設定した場合
ボタンのon / offで切り替わります
boxA
on/off
/*keyframesの設定*/
@keyframes direction{
0%{
transform: none;
}
60%{
transform: translateX(200px);
}
100%{
transform: translateX(200px) rotate(360deg);
}
}
/*アニメーションの設定*/
.boxA{
animation-name : direction; /*keyframesの名前は"direction"*/
animation-duration: 2s; /*アニメーションの時間は2秒*/
animation-direction: alternate; /*アニメーション終了時に折り返してくる*/
}
1-2.reverse
値を”reverse”とすると終了時のフレームから再生されます。
セレクター{
animation-direction: reverse; /*アニメーションを逆から再生する*/
}
A.単一のアニメーションの場合
ボタンのon / offで切り替わります
on/off
/*keyframesの設定*/
@keyframes translate{
100%{
transform: translateX(200px); /*100%の時にX軸に200px移動する*/
}
}
/*アニメーションの設定*/
.dragon2{
animation-name: translate; /*keyframesの名前は"translate"*/
animation-duration: 1.3s; /*アニメーションの時間は1.3秒*/
animation-direction: reverse; /*アニメーションを逆から再生する*/
}
B.アニメーションを細かく設定した場合
ボタンのon / offで切り替わります
boxB
on/off
/*keyframesの設定*/
@keyframes direction{
0%{
transform: none;
}
60%{
transform: translateX(200px);
}
100%{
transform: translateX(200px) rotate(360deg);
}
}
/*アニメーションの設定*/
.boxB{
animation-name : direction; /*keyframesの名前は"direction"*/
animation-duration: 2s; /*アニメーションの時間は2秒*/
animation-direction: reverse; /*アニメーションを逆から再生する*/
}
1-3.alternate-reverse
値を”alternate-reverse”とすると終了時のフレームから再生され、開始時まで行くと再生しながら折り返してきます。
セレクター{
animation-direction: alternate-reverse; /*アニメーションを逆から再生し、終了時に折り返す*/
}
A.単一のアニメーションの場合
ボタンのon / offで切り替わります
on/off
/*keyframesの設定*/
@keyframes translate{
100%{
transform: translateX(200px); /*100%の時にX軸に200px移動する*/
}
}
/*アニメーションの設定*/
.dragon3{
animation-name: translate; /*keyframesの名前は"translate"*/
animation-duration: 1.3s; /*アニメーションの時間は1.3秒*/
animation-direction: alternate-reverse; /*アニメーションを逆から再生し、終了時に折り返す*/
}
B.アニメーションを細かく設定した場合
ボタンのon / offで切り替わります
boxC
on/off
/*keyframesの設定*/
@keyframes direction{
0%{
transform: none;
}
60%{
transform: translateX(200px);
}
100%{
transform: translateX(200px) rotate(360deg);
}
}
/*アニメーションの設定*/
.boxC{
animation-name : direction; /*keyframesの名前は"direction"*/
animation-duration: 2s; /*アニメーションの時間は2秒*/
animation-direction: alternate-reverse; /*アニメーションを逆から再生し、終了時に折り返す*/
}
こばゆた
ただ単にシンプルなアニメーションを往復させるだけなら値を”alternate”にするだけでもできますね
2.注意点
今までは回数を無限にしていましたが指定する回数に気をつけないと自分のイメージと異なる動きになる可能性があります。
ちなみにアニメーションの回数に関するプロパティはこちら
値を”alternate”または”alternate-reverse”にした場合、回数を奇数にすると返ってこないので注意です。
こばゆた
意図的にやる分にはもちろんOKです
ボタンのon / offで切り替わります
boxD
on/off
/*keyframesの設定*/
@keyframes direction{
0%{
transform: none;
}
60%{
transform: translateX(200px);
}
100%{
transform: translateX(200px) rotate(360deg);
}
}
/*アニメーションの設定*/
.boxD{
animation-name : direction; /*keyframesの名前は"direction"*/
animation-duration: 2s; /*アニメーションの時間は2秒*/
animation-iteration-count: 3; /*アニメーションの回数を3回*/
animation-fill-mode: forwards; /*アニメーション終了時はその場に留まる*/
animation-direction: alternate; /*アニメーションを逆から再生し、終了時に折り返す*/
}
コメント