様々なアニメーションが簡単に実装できるGSAPを使ってみましょう!
GSAPとは?
GSAP<ジーサップ>とは、GreenSock Animation Platformの略で、GreenSockが作ったアニメーションに特化したJavaScriptのライブラリです。以前はTimelineLiteとかTimelineMaxとかを提供していましたが、統合されてGSAPというライブラリ名になりました。
アニメーションができるJavaScriptのライブラリにjQueryがありますが、jQueryはAjaxやDOM操作などできるのに対して、GSAPではそういったことはできません。
GSAPはあくまでアニメーションさせるためのライブラリということですね。
好みが分かれる部分ではありますが、jQueryもGSAPもどちらも学習コストは低いので、どちらも基本的な使い方とルールは学んでおいたほうが良いですね!
GSAPの基本
GSAPを使うときはライブラリを読み込まないといけません。GSAPにはScrollTriggerとか関連するライブラリがありますので、GSAP → GSAPのライブラリ → 実行ファイルという順番に読み込みます。
<script src="https://unpkg.com/gsap@3/dist/gsap.min.js"></script> <script src="https://unpkg.com/gsap@3/dist/ScrollTrigger.min.js"></script> <script src="./script.js"></script>
</body>の直上でCDNで読み込んでおくと便利です。
GSAPの使い方
基本的な使い方は、.setにアニメーションする前のプロパティ、.toにアニメーションした後のプロパティを書きます。
gsap.set(".content", { autoAlpha: 0, }); gsap.to(".content", { autoAlpha: 1, });
jQueryと比べるとかなりシンプルですね。
アニメーションをスクロールに連動させる
スクロールをアニメーションと連動させるにはGSAPのScrollTriggerを使うことで簡単に実装できます。
書き方はこんな感じですね。
gsap.set(".content", { autoAlpha: 0, }); gsap.to(".content", { delay: "0.5", duration: "0.5", autoAlpha: 1, scrollTrigger: { trigger: ".content", start: "50% 100%", }, });
gsap.set
アニメーションする前のプロパティを書いておきます。
autoAlpha: 0,
今回はautoAlphaで不透明度を0にして要素を見えなくしています。
gsap.to
アニメーションした後のプロパティを書いておきます。
delay: "0.5", duration: "0.5", autoAlpha: 1,
今回はdelayでアニメーションが実装されるまでの時間を0.5秒、durationでアニメーションが始まってから終わるまでの時間を0.5秒、autoAlphaを1にして表示させるようにしています。
scrollTrigger
スクロールトリガーが発火する場所を書きます。
start: "50% 100%",
startには2つの値を指定することができます。50%と書いてあるところは「この要素が」という意味で、50%は.contentの真ん中、100%と書いてあるところは「ここまできたら発火する」という意味です。
GSAPのみを使ったサンプル
GSAPのみを使ったアニメーションのサンプルです。EDIT ON CODEPENをクリックしてCodePenで見てもらうとスムーズです。
See the Pen
GSAPの使い方 by イロイロデザインラボラトリ (@iroirodesignlab)
on CodePen.
遅延、フェードイン、横スクロールなど定番のアニメーションは簡単に実装できますね!
さいごに
GSAPは軽量で書き方もシンプルな定番のアニメーションライブラリです。使い方を知っておくと非常に多くのことができるようになるので、ぜひ習得しておきましょうー!