animation-timing-functionとは、アニメーションの変化(速度)のスタイルを指定します。
cssのkeyframe animation には非常に多くのtiming-functionが用意されています。ちなみにjQueryでデフォルトで使えるのは2種類です。
それぞれのanimation-timing-functionを使い分ける事で、さらに色々な表現が可能です。
animation-timing-functionの値
-ease(初期値) :開始と終了を滑らかに変化します
- linear 直線的(一定速度)に変化します
- ease-in ゆっくり開始します
- ease-out ゆっくり終了します
-ease-in-out :ゆっくり開始してゆっくり終了します
- step-start 開始から終了状態に一気に変化し、その後は変化しません
- step-end 最初は変化せず、最後の段階へ一気に変化します
- steps(ステップ数,起点キーワード) 1つ目の値にステップ数、2つ目の値にstart、endのいずれかを指定します
- cubic-bezier(n,n,n,n) 三次ベジェ曲線の軌跡によって変化の進行度を指定します。
cubic-bezierはジェネレーターを使用するのが一般的です。
https://cubic-bezier.com/#.17,.67,.83,.67
https://codepen.io/yachin29/embed/dyrPGBq?default-tab=html%2Cresult#result-box