gsap.toメソッドと fromメソッドの使い方

gsap

gsap.to()メソッド、from()メソッドの使い方を紹介します。

デモ

See the Pen
gsap.to,from,fromTo
by Sosak (@Sosak2021)
on CodePen.

gsapの使い方

いろいろありますが、一番簡単な方法は、以下のcdnをbodyタグ下で読み込む方法です。

<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.6.1/gsap.min.js"></script>

その他の始め方は、公式サイトにて確認できます。
公式サイト:https://greensock.com/docs/

  gsap.to(第一引数, 第二引数);

どのメソッドでも共通して、第一引数には、ターゲットとなる要素を指定します。
第二引数にはオブジェクトで指定して、そのターゲットにどのようなアニメーションをさせるかを指定します。

引数の指定方法

  gsap.to('h1', {
    x: 100,
    y: 50,
    rotation: '45',
    backgroundColor: 'green',
    duration: 2,
  });

たとえば、上の例であれば、h1要素を指定して、{}の中の値のアニメーションをさせることができます。
第一引数の指定方法は、クラスなら、’.btn’、idなら’#btn’とします。

// cssのクラスで指定
gsap.to('.img1', { x: 100, y: 50, rotation: "45", backgroundColor: 'green', duration: 2 });

また、変数に格納して指定することもできます。

const img1 = document.querySelector('.img1');
  gsap.to(img1, {
    x: 100,
    y: 50,
    rotation: '45',
    backgroundColor: 'green',
    duration: 2,
  });

数字であれば、indexなどで別の変数に格納して、テンプレートリテラルで指定することも可能です。

const img1 = document.querySelector('.img1');
const index = 1;
  gsap.to(`.img${index}`, {
    x: 100,
    y: 50,
    rotation: '45',
    backgroundColor: 'green',
    duration: 2,
  });

gsap.to()メソッドの使い方

gsap.to()メソッドは、第二引数に指定したアニメーションへ向かって変化します。

gsap.to('h1', {
    x: 100,
    y: 50,
    rotation: '45',
    backgroundColor: 'green',
    duration: 2,
  });

上の値であれば、h1が、x軸に100px左へ、y軸では50px下へ、45度回転し、背景を緑色に2秒間かけて変化させます。

gsap.from()メソッドの使い方

gsap.from()メソッドは、第二引数に指定したアニメーションからデフォルト値へ向かって変化します。
デフォルト値に関してはcssで別途指定していればそこに最終的に向かって変化します。

リビールのアニメーションでよく使われます。

リビールのアニメーションで使う場合の注意点

要素にvisibilityをhiddenに設定する
opacityではなくautoAlphaを使う

gsap.from(img2, {opacity: 0, duration: 2});

htmlがパースされた後コンテンツは表示されるので、opacityの0だけではフラッシュしたようになってしまう。

opacityを使う場合、その対象に対して予めvisibilityをhiddenに設定しておきます。

.img2 {
  visibility: hidden;
}

autoAlphaはvisibilityプロパティとopacityプロパティに作用します。
visibilityはinheritがつきます。
fromを使うことで、opacityは0から1へ、visibilityはhiddenからinheritで実質visibleへ変化させることができます。

const img2 = document.querySelector('.img2');
gsap.from(img2, { autoAlpha: 0, rotation: 45, scale: 0.5, x: 100, y: -100, duration: 2 });

gsap

Posted by devsakaso