Portfolio BLog: C5log 記事をシェアする

GSAPと連動するコード

Lottie-webライブラリと、GSAPライブラリを読み込む(head内でも可)。

<script type="module" src="https://cdnjs.cloudflare.com/ajax/libs/lottie-web/5.12.2/lottie.min.js"></script>
<script type="module" src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>

Lottieアニメーションを定義する。

const bycicle = document.querySelector('.lottie');

const lottieAnimation = lottie.loadAnimation({
  container: bycicle,
  renderer: 'svg',
  loop: true,
  autoplay: true,
  path: '/assets/lottie/bycicle.json'
});

GSAPでアニメーションを作成する。
アニメーション途中、callでLottieアニメーションを変更する。

// スタートボタンを押したとき
button.addEventListener('click', ()=> {
  // GSAPでタイムラインアニメーションを作成
  gsap.timeline({ repeat: -1, repeatDelay: 0 })
    .call(() => {
      lottieAnimation.setDirection(1);  // Lottieを通常再生方向にする
      lottieAnimation.setSpeed(2);      // Lottieを2倍速にする
    })
    .to(bycicle, { x: window.innerWidth - bycicle.offsetWidth, duration: 3, ease: "bounce" })
    .call(() => {
      lottieAnimation.setDirection(-1); // Lottieを逆再生方向にする
      lottieAnimation.setSpeed(1);      // Lottieを通常速度にする
    })
    .to(bycicle, { x: 0, duration: 4, ease: "power4.inOut" });
});