CSS
 Computer >> コンピューター >  >> プログラミング >> CSS

CSSのtransition-timing-functionプロパティでトランジションの速度曲線を設定する方法

transition-timing-functionプロパティとは

CSSのtransition-timing-functionプロパティは、トランジション(遷移)効果の速度曲線を指定するために使用します。このプロパティを活用することで、アニメーションがどのように加速・減速しながら変化するかを細かく制御でき、より自然で洗練された動きを実現できます。

主に設定できる値

  • ease(初期値):ゆっくり始まり、途中で速くなり、最後にゆっくりと終わる標準的なカーブ
  • linear:開始から終了まで一定の速度で変化する
  • ease-in:ゆっくりと始まり、徐々に速くなる
  • ease-out:速く始まり、徐々にゆっくりになる
  • ease-in-out:ゆっくり始まり、ゆっくりと終わる
  • cubic-bezier(n, n, n, n):4つの数値で独自の速度曲線を自由に定義できる

実際の使用例

次のコードを実行すると、CSSでトランジション効果の速度曲線を設定する様子を確認できます。div要素にマウスカーソルを重ねると、それぞれ異なるタイミング関数による幅の変化が4秒かけて表示されます。

サンプルコード

<!DOCTYPE html>
<html>
   <head>
      <style>
         div {
            width: 100px;
            height: 100px;
            background: red;
            transition: width 4s;
         }
         #effect1 {
            transition-timing-function: linear;
         }
         #effect2 {
            transition-timing-function: ease-in;
         }
         div:hover {
            width: 250px;
         }
      </style>
   </head>
   <body>
      <h1>Transition Effect</h1>
      <p>Hover over the div elements and see the transition effect and the speed:</p>
      <div id = "effect1">linear effect</div><br>
      <div id = "effect2">ease-in effect</div><br>
   </body>
</html>

コードの解説

この例では、共通スタイルとしてすべてのdiv要素にtransition: width 4s;を指定し、幅の変更が4秒かけて滑らかに遷移するようにしています。

  • #effect1linearを指定しているため、幅が100pxから250pxまで常に一定の速度で広がります。
  • #effect2ease-inを指定しているため、変化はゆっくりと始まり、時間の経過とともに加速していきます。
  • div:hover:マウスホバー時に幅を250pxへ変更することで、トランジション効果を発火させています。

ブラウザでこのコードを開き、各要素にマウスカーソルを重ねてみてください。linearease-inの動きの違いが視覚的に確認でき、transition-timing-functionプロパティの役割がよく理解できるでしょう。

  1. CSSのtransition-timing-functionプロパティでトランジションの速度カーブを設定する方法

    transition-timing-functionプロパティとは CSSのtransition-timing-functionプロパティは、トランジション(遷移)効果の進行速度を時間の経過とともにどのように変化させるかを指定するためのプロパティです。このプロパティを使うことで、アニメーションを一定の速度で進めたり、最初はゆっくり動いて途中から加速させたりするなど、さまざまな「速度カーブ」を表現できます。 主なキーワード値 linear:開始から終了まで同じ速度で一定に変化します。 ease:初期値です。ゆっくり始まり、途中で加速し、最後にゆっくり終わります。 ease-in:ゆっくりと始

  2. CSSのtransitionプロパティとは?4つのトランジション設定を1行でまとめる方法

    CSSのtransition(トランジション)プロパティを使うと、transition-property、transition-duration、transition-timing-function、transition-delay の4つのプロパティを、たった1行にまとめて指定することができます。個別に記述するよりもコードがすっきりし、可読性も向上するため、実際の開発ではこの省略形(ショートハンド)が広く使われています。transitionプロパティの基本構文transition: プロパティ名 持続時間 タイミング関数 遅延時間;transition-property: 変化を適用するCS