こばゆた
今回の内容はtransitionプロパティの時と似たようなことをやりますので一回やったことがあればすんなり理解できるのではないかと思います
こばゆた
こんな魔球も作れます
チャッピー
これは打てないね
1.animation-duration
animation-durationプロパティはアニメーションが開始してから終了するまでにかかる時間を指定します。
時間+”s”で指定します。
セレクター{
animation-duration: 〇〇s;
}
ボールにカーソルを乗せてください
1s
2s
3s
/*keyframesの設定*/
@keyframes duration{
0%{
transform: none;
}
70%{
transform: translateX(50px) rotate(-720deg)
}
100%{
transform: translateX(100px) rotate(-1080deg) ;
}
}
/*アニメーションの設定*/
.ballA:hover,.ballB:hover,.ballC:hover{
animation-name: duration; /*keyframesの名前が"duration"*/
}
.ballA:hover{
animation-duration: 1s; /*1秒間かけてアニメーションする*/
}
.ballB:hover{
animation-duration: 2s; /*2秒間かけてアニメーションする*/
}
.ballC:hover{
animation-duration: 3s; /*3秒間かけてアニメーションする*/
}
きなこ
本当にtransition-durationとあまり変わらないね
こばゆた
そうだね
この後出てくるanimation-delayとanimation-timing-functionも名前は違えど効果はtransitionプロパティとさほど変わらないよ
2.animation-delay
アニメーションにディレイ(遅れ)をつける事ができます。
言い換えると指定した秒数後にアニメーションが始まるという事です。こちらも単位は”s”で秒数を指定します。
セレクター{
animation-delay: 〇〇s;
}
ボールにカーソルを乗せてください
1s後
2s後
3s後
/*keyframesの設定*/
@keyframes delay{
0%{
transform: none;
}
70%{
transform: translateX(50px) rotate(-720deg)
}
100%{
transform: translateX(100px) rotate(-1080deg) ;
}
}
/*アニメーションの設定*/
.ballA:hover,.ballB:hover,.ballC:hover{
animation-name: delay; /*keyframesの名前が"delay"*/
animation-duration: 1s; /*1秒間かけてアニメーションする*/
}
.ballA:hover{
animation-delay: 1s; /*1秒後にアニメーションを開始する*/
}
.ballB:hover{
animation-delay: 2s; /*2秒後にアニメーションを開始する*/
}
.ballC:hover{
animation-delay: 3s; /*3秒後にアニメーションを開始する*/
}
3.animation-timing-function
アニメーションに速さや緩急を与える時に使います。
セレクター{
animation-timing-function: 値;
}
transition-timing-functionの使い回しですが下の図で見てもらうとなんとなく違いがわかると思います。
ボタンにカーソルを乗せてください
ease
ease-in
ease-out
ease-in-out
linear
乗せる
ボールにカーソルを乗せてください
ease
ease-in
linear
/*keyframesの設定*/
@keyframes atf{
0%{
transform: none;
}
70%{
transform: translateX(50px) rotate(-720deg)
}
100%{
transform: translateX(100px) rotate(-1080deg) ;
}
}
/*アニメーションの設定*/
.ballA:hover,.ballB:hover,.ballC:hover{
animation-name: atf; /*keyframesの名前が"atf"*/
animation-duration: 1s; /*1秒間かけてアニメーションする*/
}
.ballA:hover{
animation-timing-function: ease; /*アニメーションが"ease"で動く*/
}
.ballB:hover{
animation-timing-function: ease-in; /*アニメーションが"ease-in"で動く*/
}
.ballC:hover{
animation-timing-function: linear; /*アニメーションが"linear"で動く*/
}
“steps”や”cubic-bezier”もつかえます。
ボールにカーソルを乗せてください
/*keyframesの設定*/
@keyframes ballSteps{
0%{
transform: none;
}
100%{
transform: translateX(200px);
}
}
/*アニメーションの設定*/
.ball:hover{
animation-name: ballSteps; /*keyframesの名前が"ballSteps"*/
animation-duration: 2s; /*2秒間かけてアニメーションする*/
animation-timing-function: steps(8); /*アニメーションが"steps"で動く*/
}
ボールにカーソルを乗せてください
/*keyframesの設定*/
@keyframes ballBezier{
0%{
transform: none;
}
100%{
transform: translateX(200px);
}
}
/*アニメーションの設定*/
.ball:hover{
animation-name: ballBezier; /*keyframesの名前が"ballBezier"*/
animation-duration: 2s; /*2秒間かけてアニメーションする*/
animation-timing-function: cubic-bezier(0.6, -0.28, 0.74, 0.05); /*アニメーションが"cubic-bezier"で動く*/
}
コメント