【CSS】transition-timing-function - トランジションの速度

【CSS】transition-timing-function - トランジションの速度

CSSのtransition-timing-functionプロパティについて解説します。

検証環境

transition-timing-function

transition-timing-functionは“トランジションの速度”のプロパティです。

基本構文

transition-timing-function: 値;

複数値はカンマ(,)で区切ります。

transition-timing-function: 値1, 値2, 値3;

代表的な値は次の通りです。

意味
ease 変化時間半ばまで加速し、最後は遅くなります。
linear 均等速度
ease-in 加速し続けます。
ease-out 減速し続けます。
ease-in-out ゆっくり開始し、ゆっくり終了します。

サンプル

ease

<style>
div {
    width: 200px;
    height: 1.0em;
    position: relative;
}
input {
    position: absolute;
    top: 0;
    left: 0;
    transition-duration: 3.0s;
    transition-property: left;
    ___ih_hl_start
    transition-timing-function: ease;
    ___ih_hl_end
}
input:focus {
    left: 100%;
}
</style>

<div>
    <input type="text">
</div>

linear

<style>
div {
    width: 200px;
    height: 1.0em;
    position: relative;
}
input {
    position: absolute;
    top: 0;
    left: 0;
    transition-duration: 3.0s;
    transition-property: left;
    ___ih_hl_start
    transition-timing-function: linear;
    ___ih_hl_end
}
input:focus {
    left: 100%;
}
</style>

<div>
    <input type="text">
</div>

ease-in

<style>
div {
    width: 200px;
    height: 1.0em;
    position: relative;
}
input {
    position: absolute;
    top: 0;
    left: 0;
    transition-duration: 3.0s;
    transition-property: left;
    ___ih_hl_start
    transition-timing-function: ease-in;
    ___ih_hl_end
}
input:focus {
    left: 100%;
}
</style>

<div>
    <input type="text">
</div>

ease-out

<style>
div {
    width: 200px;
    height: 1.0em;
    position: relative;
}
input {
    position: absolute;
    top: 0;
    left: 0;
    transition-duration: 3.0s;
    transition-property: left;
    ___ih_hl_start
    transition-timing-function: ease-out;
    ___ih_hl_end
}
input:focus {
    left: 100%;
}
</style>

<div>
    <input type="text">
</div>

ease-in-out

<style>
div {
    width: 200px;
    height: 1.0em;
    position: relative;
}
input {
    position: absolute;
    top: 0;
    left: 0;
    transition-duration: 3.0s;
    transition-property: left;
    ___ih_hl_start
    transition-timing-function: ease-in-out;
    ___ih_hl_end
}
input:focus {
    left: 100%;
}
</style>

<div>
    <input type="text">
</div>

複数値

<style>
div {
    width: 200px;
    height: 1.0em;
    position: relative;
}
input {
    background: red;
    position: absolute;
    top: 0;
    left: 0;
    transition-duration: 3.0s;
    transition-property: background, left;
    ___ih_hl_start
    transition-timing-function: ease-in, linear;
    ___ih_hl_end
}
input:focus {
    background: blue;
    left: 100%;
}
</style>

<div>
    <input type="text">
</div>