イージング曲線

3 次ベジェ曲線 ビジュアルエディター

2 つの制御点を直接ドラッグし、時間曲線と各種標準 easing の速度差を視覚的に比較できます。

曲線制御点

01

よく使うプリセット

時間曲線比較

同時に終点へ到達
ボールの位置は同じ時点でのアニメーション進行度を表します。右へ進んでいるほど、その時点で easing がより先まで進んでいることを示します。

生成された CSS

Cubic Bezier のアニメーション曲線を理解するには?

Cubic Bezier は開始点、2 つの制御点、終了点を使ってアニメーションの進み方を表します。CSS では開始点が (0,0)、終了点が (1,1) に固定されるため、調整するのは P1 と P2 です。x 軸は経過時間、y 軸はプロパティの進捗率を表し、曲線が急な区間ほどその段階の変化が速くなります。

時間を逆行させることはできないため、x1 と x2 は 0〜1 の範囲にする必要があります。一方 y 値は範囲外でもよく、要素を一時的に終点より先へ進ませたり、最初に逆方向へ動かしたりできます。表現力のある効果ですが、正確な予測可能性が求められるフォーム操作やナビゲーションでは避けるのが無難です。

イージング選択の原則

  • Ease-out は element が scene へ入るときによく使われ、素早く反応した後に柔らかく停止します。
  • 要素を退場させる際は ease-in を使い、最初はゆっくり、後半は速く動かせます。
  • continuous rotation や progress indicator には linear が適しています。
  • interface state transition には ease-in-out を使うと、開始と終了がより自然になります。

よくある質問

4 つの数字は何を表していますか?
順序は x1, y1, x2, y2 で、2 つの control point の座標を表します。
なぜ can't control point x go beyond 0 to 1 のですか?
x は time を表します。1 つの time に 1 つの進行度だけが対応するよう、CSS では x1 と x2 の範囲が制限されています。
y value が範囲外の場合はどうなりますか?
animated property が end point を超えたり start point を下回ったりし、overshoot や anticipation を作れます。
ease と ease-in-out の違いは何ですか?
default ease は比較的勢いよく開始し、ease-in-out は開始と終了がゆっくりで中間が速くなります。
すべての CSS プロパティに easing を適用できますか?
滑らかに interpolation できるのは animatable property だけです。display など discrete property は、通常同じような transition effect を持ちません。