お問い合わせ
  • アニメーション
  • JavaScript

【GSAP】Timelineで作る!一連アニメーション

GSAPのTimelineは、複数の要素・動きを一連の流れとして作成することができる機能です。

通常のgsap.to()gsap.from()を単発で書くよりも、「アニメーションの順序を直感的に制御できる」「複数の要素を時間軸でまとめて扱える」といった利点があります。

この記事では、Timelineを使って実際にファーストビューの一連アニメーションを組み立てるところまでを紹介します!

Timelineの基本構造

▼Timelineの基本的な書き方


// Timelineを作成
let tl = gsap.timeline({
  repeat: -1,        // 無限に繰り返す
  yoyo: true,        // 繰り返し時にアニメーションを逆再生
  repeatDelay: 0.5,  // 繰り返しの間に0.5秒の間隔を置く
});

// アニメーション内容
tl
  .to(".item01", { duration: 1, y: 50 })     // 1つ目の要素を下に移動
  .to(".item02", { duration: 1, y: 100 })    // 2つ目の要素をさらに下に移動
  .to(".item03", { duration: 1.5, y: 150 })  // 3つ目の要素をさらに下に移動
  .to(".item03", { rotate: 180 });           // 最後に3つ目の要素を180度回転

.to()を繋げて書くことで、記述した順番にアニメーションが実行されます。

上記コードの例では、
item01 が下に動く→item02 がさらに下に動く→item03 がさらに下に動く→item03 が180度回転する
の順に、一つのアニメーションが終わると次のアニメーションが再生、それが終わると次を再生、のように実行されます。

また、gsap.timeline()の中にオプションを書くことができます。
上記コードの例では、repeat: -1で無限に繰り返す、yoyo: trueで繰り返す時にヨーヨーのように行ったり来たりするのを設定しています。

▼実際の動き

See the Pen
【GSAP】Timeline_No1
by ishi (@qwwbetnz-the-typescripter)
on CodePen.

アニメーション開始の遅延時間を設定する

Timelineでは、なにも設定しなければ、前のアニメーションが終わったらすぐに次のアニメーションが開始されます。
しかし、アニメーション同士に余白を持たせたり、逆にタイミングを重ねて開始したい場面もあります。

そこで使用するのが、+=0.5です。

▼コード例


tl
  .to(".item01", { duration: 1, y: 50 })
  .to(".item02", { duration: 1, y: 100 },"+=0.8")    // 通常より0.8秒遅く開始
  .to(".item03", { duration: 1.5, y: 150 },"-=0.8")  // 通常より0.8秒早く開始
  .to(".item03", { rotate: 180 });

このように対象の要素に記述することで、+=は遅く開始され、-=は早く開始されます。

Timelineでよく使う【オプション】

先ほど紹介したrepeat: -1yoyo: true以外にも、様々なオプションがあります。

 

オプション名 設定例 説明
repeat -1 アニメーションを繰り返す回数を指定。-1で無限ループ。
repeatDelay 0.5 繰り返しの間に待機時間を設ける。
yoyo true
false
再生後に逆方向へ戻る(往復アニメーション)。
delay 0.5 timeline全体の開始までの時間。
defaults  defaults: { duration: 0.8, } デフォルト設定。全てのアニメーションに適用されるデフォルト値を設定できます。

ファーストビューの一連アニメーション

紹介したTimelineの機能を使って、
実際にファーストビューの一連アニメーションを作ってみました。
(再度見たい場合は、リロードしてください)

See the Pen
【GSAP】Timeline_Firstview_anim
by ishi (@qwwbetnz-the-typescripter)
on CodePen.

▼コード

See the Pen
【GSAP】Timeline_Firstview_anim
by ishi (@qwwbetnz-the-typescripter)
on CodePen.

Timelineを使って複数のアニメーションを順番に実行しています。
defaultsで共通の設定をまとめておくことで、すっきりとしたコードになっていると思います。

まとめ

Timelineを活用すれば、全体の流れを把握しやすく、修正や追加もしやすいコードでアニメーションの作成ができます!

ぜひ、この記事をもとにサイトのファーストビュー作りに挑戦してみてください!

【関連記事】

▼GSAPの導入方法や、アニメーションの作り方を知りたい方はこちら
GSAP入門編|アニメーションの作り方を解説

▼GSAPの基礎や特徴、事例を知りたい方はこちら
GSAPの基礎と特徴を徹底解説|事例から学ぶ活用法

ドコドア エンジニア部

ドコドア エンジニア部

Flutterなどの技術を活用し、ユーザーにとって価値ある高品質なモバイルアプリ・Webアプリの開発に取り組んでいます。
このブログでは、アプリ開発の現場で培ったフロントエンド、バックエンド、インフラ構築の知識から生成AI活用のノウハウまで、実践的な情報をアプリ開発に悩む皆様へ向けて発信しています!
【主な技術スタック】 Flutter / Firebase / Svelte / AWS / GCP / OpenAI API

Contact Us

Web制作、Webマーケティング、SFA・MA導入支援に関するお悩みがある方は、お気軽にご相談ください。

お問い合わせ・ご相談

ホームページ制作、マーケティングにおける
ご相談はお気軽にご連絡ください。

資料請求

会社案内や制作実績についての資料を
ご希望の方はこちらから。

お電話でのお問い合わせ

お電話でのご相談も受け付けております。

※コールセンターに繋がりますが、営業時間内は即日
担当より折り返しご連絡をさせて頂きます。

9:00-18:00 土日祝休み

電話する 無料相談はこちら