【cording】「cubic-bezier」でanimation-timing-functionの表現の幅を広げよう

cubic-bezierアニメーション進捗をコントロール

閲覧ありがとうございます。

ページテーマ

CSSアニメーションのスピードを操る!

アニメーションで来たけど微妙にタイミングが違う…

画面に現れた時にはアニメーションが終わりかけてる…

そんな問題の解決につながれば嬉しいです。

\ このサイトで利用しています /

おすすめテーマ

おすすめサーバー

目次

「cubic-bezier」とは

「cubic-bezier」は、animation-timing-functionに用いる値形式です。

アニメーションのタイミングを3次ベジェ曲線という曲線を使って表現します。

ふつうのアニメーション
ゆっくりはじまりゆっくり終わる
はじめ速くゆっくり終わる
素早く始まりゆっくり終わる
ゆっくり始まり一気に終わる
ゆっくり始まり素早く終わる

もう少し詳しく言うと

座標の説明画像

時間経過ごとの進捗度合いを曲線で表現します。

の座標で前半の曲線が決まり、の座標で後半の曲線が決まります。

これらの座標をプロパティーの値に入れることで任意のアニメーションタイミングを表現します。

実際の使い方

.anime{
    animation-timing-function:cubic-bezier(a,b,c,d);
}

ここではわかりやすい様に数字をアルファベットに置き換えました。

aが前半のx座標、bが前半のy座標、cが後半のx座標、dが後半のy座標です。

数値は0から1の範囲で入力します。

aは数値が大きいほど前半がゆっくり進行します。

bは数値が大きいほど前半が進捗度合いが多くなります

cは数値が小さいほど後半がゆっくり進行します

dは数値が小さいほど後半の進捗度合いが多くなります

イメージ例

参考に3パターンのアニメーションを用意しました。

  1. liner(一定のスピード・進捗)
  2. サッと始まりゆっくり終わる
  3. ゆっくり始まりサッと終わる

1,liner(一定のスピード・進捗)

テスト1

テスト2

テスト3

それぞれ以下のように座標を指定しています。(animation-timing-function以外のコードは割愛しています。)

.test1{
    animation-timing-function:cubic-bezier(0,0,1,1);
}
.test2{
    animation-timing-function:cubic-bezier(0.1,0.9,0.1,0.9);
}
.test3{
    animation-timing-function:cubic-bezier(0.9,0.1,0.9,0.1);
}

cubic-bezierの使い方の参考になれば幸いです。

こちらのサイトを参考にさせて頂きました。

このサイトはテーマ「SWELL」を使っています

「SWELL」はWordpress初心者も慣れた人も使い続けられるテーマだと思います。

よかったらシェアお願いします!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

事業で使うサイトを企業に依頼し作成したものの、全く機能せず自分で作り直したのがきっかけでウェブの世界に興味を持ち今も吸収中。
Wordpress、コーディング、マーケティングなどウェブlogにアウトプットしています。誰かの問題解決のヒントになれば最高に嬉しいです。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次