Gsapのtimelineメソッドで
アニメーションをコントロールしましょう。
はじめに
概要
Gsapのtimelineを使用すると、アニメーションのタイミングや順序を細かく制御することができます。例えば、複数の要素を同時にフェードインさせたい場合、Timelineを使用してそれらのアニメーションをグループ化し、一括で制御することができます。複雑なアニメーションも容易に実装することができます。ぜひとも自身の開発に取り入れてみましょう。
※本記事の情報は執筆時点のものであり、閲覧時点では変更されている可能性があります。また、ご利用の環境によっては、本記事の内容が正常に動作しないことがあります。最新の情報については、公式サイトなどでご確認ください。
timelineで実装できること
timelineでは、以下のようにアニメーションをコントロールすることができます。
サンプルコード
上記のサンプルコードです。こちらのコードを元に詳しく説明していきます。
gsap
const tl = gsap.timeline(); tl.from(".js_1_h2 span", 0.8, { delay: 1, webkitTextStroke: "1px blue", opacity: 0, scale: 1.5, stagger: { amount: 0.1, from: "center", }, ease: "power2.out", }) .to(".js_1_h2 span", 1, { webkitTextStroke: "0px black", }) .from(".js_1-2_p", 0.5, { opacity: 0, y: 10, }) .from( ".js_1-3_btn", 0.5, { y: -10, opacity: 0, }, "<" ) .from(".cover-slide", 0.5, { opacity: 0, x: "-100%", }) .to(".cover-slide", 0.5, { x: "100%", }) .from( ".js_1-4_img img", 0.8, { opacity: 0, scale: 1.3, }, "<" );
使い方
const tl(変数名は何でもよい) = gsap.timeline()
こののように宣言し、to/fromメソッドでつなげることができ、アニメーションは順番に実装されます。
サンプルコードの値を変更し、実際に試してみてください。
コードの解説
ポイントとして、Gsapで指定するための独自のクラス(js_1/js_2等)を振り分けることでアニメーションが実装しやすくなります。
.from( ".js_1-3_btn", 0.5, { y: -10, opacity: 0, }, "<" )
「<」(小なり記号)は、上述の内容と同じタイミングでアニメーションさせることを意味します。アニメーションが単調にならないように、タイミングをコントロールすることができます。
cover-slideクラス
.cover-slide { top: 0; left: 0; background-color: #858181; width: 100%; height: 100%; z-index: 1; }
CSSで、予め画像の上部にグレーの色を準備し、absoluteとz-indexを使用して調整します。
.from(".cover-slide", 0.5, { opacity: 0, x: "-100%", }) .to(".cover-slide", 0.5, { x: "100%", })
Gsapのxプロパティを使用して、要素を-100%から100%まで移動させるカバーアニメーションを実装しています。また、このアニメーションを正しく表示するためには、親要素にoverflow: hiddenを指定することが重要です。
お疲れ様です。timelineメソッドの理解は深まりましたでしょうか?何かご質問がありましたら、お気軽にお問い合わせくださいませ。
まとめ
- timelineでアニメーションをコントロールできる
- 複雑なタイミングでのアニメーションも可能にする
- staggerやscrolltriggerと組み合わせることにより、魅力的なアニメーション実現できる