IT用語辞典バイナリ | さくいん | サイトマップ | ヘルプ | お気に入りに追加  
CSS3リファレンス
IT用語辞典バイナリ<パソコン用語・コンピュータ辞書>
コンピュータ偉人伝<人物・画像・写真・プログラミング>
コンピュータ偉人伝<人物・画像・写真・プログラミング>
コンピュータ偉人伝<人物・画像・写真・プログラミング>
拡張子辞典<ファイル・変換・変更・表示>
HTML5タグリファレンス
CSS3リファレンス
HTML5 JavaScript API
エクセル関数リファレンス
ITパスポート試験
 
  
  IT用語辞典バイナリ > CSS3リファレンス > トランジション > transition-timing-functionの解説
  カテゴリ別さくいん
  タグ別さくいん

transition-timing-functionの解説

トランジションの補間方法を指定するには?

要素書式

transition-timing-function: 【補間方法】 [, 【補間方法】...];

対応ブラウザ

  • IE 9:×
  • Firefox 10.0:○(-moz-transition-timing-function)
  • Opera 11.61:○(-o-transition-timing-function)
  • Chrome 17.0:○(-webkit-transition-timing-function)
  • Safari 5.1:○(-webkit-transition-timing-function)

    ※現在、動作にベンダープレフィックスが必要なブラウザは、括弧内にベンダープレフィックス付のプロパティを記載しています。
    ブラウザWindows 7上で動作確認を行っています。
    ユーザーの設定より、異なる挙動をする場合があります。

値一覧

トランジションの時間的な変化の仕方(中間の値の補間方法)には以下の値が指定できます。(これらをタイミング関数とも呼びます)

値の種類と意味は、アニメーションの補間方法を指定するには?と共通です。

内容
ease開始付近と終了付近の変化を滑らかにします。cubic-bezier(0.25, 0.1, 0.25, 1.0)と同じ。既定値です。
linear一定の割合で直線的に変化させます。cubic-bezier(0.0, 0.0, 1.0, 1.0)と同じ。
ease-in開始付近の変化を緩やかにします。cubic-bezier(0.42, 0, 1.0, 1.0)と同じ。
ease-out終了付近の変化を緩やかにします。cubic-bezier(0, 0, 0.58, 1.0)と同じ。
ease-in-out開始付近と終了付近の変化を緩やかにします。cubic-bezier(0.42, 0, 0.58, 1.0)と同じ。
cubic-bezier(x1, y1, x2, y2)変化に掛かる時間をX軸で1、変化の総量をY軸で1としたとき、起点の次の制御点を(x1,y1)、
終点の前の制御点を(x2, y2)とする三次ベジェ曲線にしたがって値を変化させます。
x1、y1、x2、y2はすべて 0 から 1 の間の実数です。
step-start開始時点で終了状態の値に変化します。steps(1, start)と同じ。Operaは未実装。
step-end終了時点まで変化せず、終了時点で終了状態の値に変化します。steps(1, end)と同じ。Operaは未実装。
steps(ステップ数, ディレクション)時間的変化を「ステップ数」の数のステップに等分に区切って不連続に変化させます。
「ステップ数」は 1 以上の整数です。
「ディレクション」にキーワードstartが指定されたときは、起点で最初のステップが起きます。
キーワードendが指定されたときは、終点で最後のステップが起きます。
Operaは未実装。

解説文

特定の要素のCSSプロパティの値が、疑似クラス「:hover」や「:active」の適用などによって変更されるとき、既定では変更は瞬間的に反映されます。

トランジションは、こうした場合のプロパティの値の変化を、一定の時間をかけて徐々に行うようにする効果です。

transition-timing-functionプロパティでは、プロパティの値の時間的変化の仕方を指定します。

値としては、ease、linear、ease-in、ease-out、ease-in-out、step-start、step-endのキーワードと、cubic-bezier(x1, y1, x2, y2)関数とsteps(ステップ数, ディレクション)関数が指定できます。

ease、linear、ease-in、ease-out、ease-in-outの各キーワードの指定は、cubic-bezier(x1, y1, x2, y2)の引数に特定の値を指定した場合と同じになります。

step-start、step-endの各キーワードの指定は、steps(ステップ数, ディレクション)の引数に特定の値を指定した場合と同じになります。

各キーワードを指定した場合のおよその変化の仕方は以下の通りです。

ease
開始付近と終了付近の変化が滑らかになります。ease-inよりは速い変化で始まり、中間地点から減速していきます。既定値
linear
常に一定の割合で変化します。グラフは直線になります。
ease-in
緩やかな変化で始まり、徐々に加速していきます。
ease-out
速い変化で始まり、終点近くから緩やかになります。
ease-in-out
緩やかな変化で始まり、徐々に加速していき、終点近くからまた緩やかになります。
step-start
開始時点で終了状態の値に一気に変化し、以後変化しません。
step-end
終了時点まで変化せず、終了時点で終了状態の値に一気に変化します。

トランジションの時間的変化を指定する値は、カンマで区切って複数指定することができます。その場合、transition-propertyプロパティの、対応する順番に指定されたプロパティが、それぞれの値の適用される対象となります。

例えば、transition-propertyプロパティで、カンマ区切りで2番目に指定したプロパティに適用されるトランジションの変化の仕方は、transition-timing-functionプロパティで、カンマ区切りで2番目に指定した値になります。

以下では、直線的に一定の割合で変化する(linear)、5 秒間の、緑から青への背景色のトランジションを指定しています。

#out{
    background-color:green;
}

#out:hover{
    background-color:blue;
    transition-property:background-color;
    transition-duration:5s;
    transition-timing-function:linear;
}

三次ベジェ曲線による時間的変化の指定

cubic-bezier(x1, y1, x2, y2)は、プロパティの値の時間的変化を、三次ベジェ曲線にもとづいて指定します。

三次ベジェ曲線は、起点P0、制御ポイントP1、制御ポイントP2、終点P3によって決まる、起点P0から始まり、終点P3で終わる曲線です。

この曲線は、起点P0付近がP0とP1を結ぶ線に接する勾配を持ち、終点P3付近がP2とP3を結ぶ線に接する勾配を持ち、その間の点は、一定の数学的方式で補間されます。

bezier.png

cubic-bezier(x1, y1, x2, y2)関数は、起点P0を(0,0)、P1を(x1,y1)、P2を(x2, y2)、終点P3を(1, 1)とする三次ベジェ曲線にしたがって、値を時間的に変化させます。(このとき、X軸は時間、Y軸は変化量で、各座標の値は、変化の全体の時間と、変化の全体の量をともに1とした縮尺です)

なお、サンプルソースの場合のように、引数に指定する値によっては、最終値をいったん過ぎてから、最終時点で最終値に戻ってくる、という挙動になることもあります。

ステップ関数による時間的変化の指定

steps(ステップ数, ディレクション)は、プロパティの値の時間的変化を、複数の段階に分けて行います。時間的変化は、同じ割合で進行する、不連続な、段階的変化になります。

このときのステップの発生の仕方は「ディレクション」パラメータによって変化します。「ディレクション」パラメータにはキーワードstartとendが指定可能です。

「ディレクション」に、startが指定された場合、最初のステップは、開始時点で起きます。つまり、「steps(3,start)」を指定した場合、次のようになります。(経過時間と値はどちらも全体に対する割合)

ステップ123-
経過時間01/32/31
1/32/311

「ディレクション」に、endが指定された場合、最後のステップは、終了時点で起きます。つまり、「steps(3,end)」を指定した場合、次のようになります。(経過時間と値はどちらも全体に対する割合)

ステップ-123
経過時間01/32/31
01/32/31

steps(ステップ数, ディレクション)はOperaでは未実装です。

サンプルソース

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>

    #container{
       width:80%;
       border-right:1px solid black;
    }
    
    #container div{
        width:60px;
        height:60px;
        border:1px solid black;
        
        position:relative;
        left:0%;
    }
    
    /* トランジションの時間を共通指定する */
    #container:hover div{
        transition-duration:10s; /* 標準 */
        -moz-transition-duration:10s; /* Firefox */
        -o-transition-duration:10s; /* Opera */
        -webkit-transition-duration:10s; /* Chrome, Safari */
    }
    
    /* ボックスごとに時間的変化の補間方法(タイミング関数)を指定する */
    
    #container:hover div#box1{
        left:100%;
        transition-timing-function:ease;
        -moz-transition-timing-function:ease;
        -o-transition-timing-function:ease;
        -webkit-transition-timing-function:ease;
    }
    #container:hover div#box2{
        left:100%;
        transition-timing-function:linear;
        -moz-transition-timing-function:linear;
        -o-transition-timing-function:linear;
        -webkit-transition-timing-function:linear;
    }
    #container:hover div#box3{
        left:100%;
        transition-timing-function:ease-in;
        -moz-transition-timing-function:ease-in;
        -o-transition-timing-function:ease-in;
        -webkit-transition-timing-function:ease-in;
    }
    #container:hover div#box4{
        left:100%;
        transition-timing-function:ease-out;
        -moz-transition-timing-function:ease-out;
        -o-transition-timing-function:ease-out;
        -webkit-transition-timing-function:ease-out;
    }
    #container:hover div#box5{
        left:100%;
        transition-timing-function:ease-in-out;
        -moz-transition-timing-function:ease-in-out;
        -o-transition-timing-function:ease-in-out;
        -webkit-transition-timing-function:ease-in-out;
    }
    #container:hover div#box6{
        left:100%;
        transition-timing-function:cubic-bezier(0.7, 05, 0.2, 1.0);
        -moz-transition-timing-function:cubic-bezier(0.7, 05, 0.2, 1.0);
        -o-transition-timing-function:cubic-bezier(0.7, 05, 0.2, 1.0);
        -webkit-transition-timing-function:cubic-bezier(0.7, 05, 0.2, 1.0);
    }
    #container:hover div#box7{
        left:100%;
        transition-timing-function:steps(5,start);
        -moz-transition-timing-function:steps(5,start);
        -o-transition-timing-function:steps(5,start);
        -webkit-transition-timing-function:steps(5,start);
    }
</style>
</head>
<body>
   <p>右端への移動時間はすべて同じ10秒です。</p>
   <p>マウスオーバーで一斉にスタートします。</p>
   <div id="container">
       <div id="box1">ease</div>
       <div id="box2">linear</div>
       <div id="box3">ease-in</div>
       <div id="box4">ease-out</div>
       <div id="box5">ease-in-out</div>
       <div id="box6">cubic-bezier(0.7, 05, 0.2, 1.0)</div>
       <div id="box7">steps(5,start)</div>

   </div>
</body>
</html>

関連項目



シャープのマスクシャープのマスク
シャープが製造・販売する不織布マスク。
Surface Book 3Surface Book 3
Microsoftが販売するデタッチャブルPC。
Surface Go 2Surface Go 2
Microsoftが発表した2in1 PC。

 ・ITパスポート試験とは
 ・試験範囲と内容
 ・サンプル問題にチャレンジ

 ・Windowsの歴史
ジョン・マッカーシー LISPの開発者
ジョン・マッカーシー
人工知能の研究分野における第一人者。
スティーブ・ジョブズ Appleの共同創設者
スティーブ・ジョブズ
「Mac」や「iPhone」を生み出した経営者。
デニス・リッチー C言語、UNIXの開発者
デニス・リッチー
C言語の設計、UNIXの開発に携わった人物。
».m4b MPEG-4オーディオファイルの拡張子。 up!
».m4r iPhoneの着メロにするAACファイルにつく拡張子。 up!
».xlsx Excel 2007で作成したファイルのデフォルトの拡張子。
».docx Word 2007の標準的な保存形式。XML形式となっている。

2024年4月19日現在
ランキング1   ICT (用語辞典)
ランキング2   AirDrop (用語辞典)
ランキング3   コンテキスト  (用語辞典)
ランキング4   セグメント  (用語辞典)
ランキング5   アノテーション  (用語辞典)
ランキング6   オムニチャネル  (用語辞典)
ランキング7   スワイプ  (用語辞典)
ランキング8   インスタンス化  (用語辞典)
ランキング9   カラム  (用語辞典)
ランキング10   FOMO  (用語辞典)
RSS 0.91 RSS 1.0 RSS 2.0
IT用語辞典バイナリについて運営会社についてお問い合わせ先テクニカルライター募集利用規約
プライバシーポリシー著作権・商標について協力社一覧Weblio 辞書スマート翻訳英和辞典 - Weblio辞書Weblio英会話
©2023 GRAS Group, Inc. All rights reserved.