LOADING

saco blog logo

Webコーダー日記

GSAP keyframes – アニメーションの流れを作る –

webコーダーのsaco @sacocco_sacoya です。

GSAPのkeyframesを使って、アニメーションの流れを作成する方法を学びました。
keyframesを使用すれば、色々な指定をしたアニメーションを1連の流れとしてかんたんに作成することが可能です。

keyframesとは

そもそもkeyframeってなんだろうと思い調べてみました。

アニメーションやコンピューターグラフィックにおいて、動画像の作成や記録の基点となるフレーム

参照:コトバンク

アニメーションにおいての区切り地点みたいなものなのかなと思いました。
CSSアニメーションでもkeyframesがありますよね。
GSAPでは記述方法が若干違いますが、ほぼ同様のものと思ってよいです。
しかし、GSAPのkeyframesでは色々なオプションを付けることができるため、より柔軟なアニメーション作成が可能です。

keyframesの使い方

GSAPでkeyframesを使用する際は記述方法がいくつかありますのでご紹介します。

書き方その1 – x軸とy軸のプロパティに配列を記述

See the Pen GSAP keyframes (1) by saco (@sunacodesu) on CodePen.

上記例では、5秒掛けてboxが四角を描くようなアニメーションを作成しました。
以下、GSAPの記述です。

gsap.to('.box', 5, {
  keyframes: {
  //移動位置を配列で指定。
  //x軸とy軸に指定した数値分のpxが、カンマ区切りで順番に移動する
    x:[0,50,50,0,0],
    y:[0,0,50,50,0],
  },
    repeat: -1,
})

keyframesのプロパティの中に波括弧を書き、x軸とy軸のプロパティの中に配列で移動距離を記述します。

カンマ記号で区切るごとに、boxが指定位置まで移動してくれます。

書き方その2 – keyframesのプロパティに配列を記述

See the Pen GSAP keyframes (2) by saco (@sunacodesu) on CodePen.

書き方その1と、アニメーションの内容は同じです。
以下、GSAPの記述です。

gsap.to('.box', 5,{
  keyframes: [
    //1回目のアニメーション
    {
      x:50,
    },
    //2回目のアニメーション
    {
      y:50,
    },
    //3回目のアニメーション
    {
      x:0,
    },
    //4回目のアニメーション
    {
      y:0,
    },
  ],
    repeat: -1,
})

keyframesのプロパティに配列を作成し、波括弧の中にプロパティを指定します。
こちらもカンマ区切りでアニメーションが移り変わっていきます。

書き方その3 – %で区切って記述

See the Pen GSAP keyframes (3) by saco (@sunacodesu) on CodePen.

こちらも書き方その1と、アニメーションの内容は同じです。
以下、GSAPの記述です。

gsap.to('.box',5, {
  keyframes: {
    '0%':{
      x:0,
      y:0
    }, 
    '25%':{
      x:50,
      y:0
    },
    '50%':{
      y:50,
      x:50
    },
    '75%':{
      x:0,
      y:50,
    },
    '100%':{
      x:0,
      y:0
    },
  },
  repeat: -1,
})

こちらはCSSでkeyframesを記述する書き方とかなり近いですね。

keyframesのプロパティに波括弧を記述し、任意の%で区切ったあとにアニメーションの指定を記述します。
こちらもカンマ区切りでアニメーションが移り変わっていきます。

keyframesでのeasing

keyframesで作成したアニメーションの中に、easingを指定できます。

See the Pen GSAP keyframes (1) by saco (@sunacodesu) on CodePen.

ease

keyframesの中に記述すると、アニメーションの全体のeasingを指定することができます。

easeEach

keyframesで指定したアニメーションのカンマ区切りで移動するときのeasingを指定することができます。

それぞれ、power1やstepsなど、お好きなeasingを指定してください。

ちなみにeasingとは、アニメーションの変化の挙動を指定できるGSAPの機能です。
easingって何?という方は、↓の記事で詳しく解説していますのでぜひ御覧ください。

durationやdelayなど色々な指定ができる

See the Pen GSAP keyframes いろいろな効果 by saco (@sunacodesu) on CodePen.

書き方その2の記述方法で、回転や色の変化など色々指定してみました。
簡単な指定ですが、組み合わせによっては面白くなりそうですね。

まとめ

  • keyframesを使うと、アニメーションの流れが簡単に作成できる
  • 書き方は3通り
  • easeeaseEachを使ってeasingが指定できる
  • durationやdelayなど様々な指定も可能

以上、GSAPのkeyframesについての説明でした。

想像していたよりも、簡単にアニメーションの流れを作成できることがわかりました。
書き方については、keyframesのプロパティに配列を記述する書き方(書き方その2)が使いやすそうかなと思いました。

この記事がGSAPのアニメーション作成に役立てば嬉しいです!

それでは☆

PROFILE

saco profile img

SACO

1990年12月生まれ / 岡山県在住

WEBコーダーです。
2019年から独学でweb製作の勉強を開始し、2020年にコーダーに転身しました。
製作の備忘録など記していきます。
ショートカットキー、notionが好きです。

ポートフォリオサイトです

saco portfolio logo