Select Page

Here is a code to play split text animation on a text with the class “.split-text” whenever it is visible in the viewport.

// Play SplitText Animation on Viewport
function playAnimation() {
  var tl = gsap.timeline(),
    mySplitText = new SplitText(".split-text", { type: "words,chars" }),
    chars = mySplitText.chars; //an array of all the divs that wrap each character

  gsap.set(".split-text", { perspective: 400 });

  tl.from(chars, {
    duration: 0.8,
    opacity: 0,
    scale: 0,
    y: 80,
    rotationX: 180,
    transformOrigin: "0% 50% -50",
    ease: "back",
    stagger: 0.01
  });
}

gsap.utils.toArray(".split-text").forEach(function (element) {
  ScrollTrigger.create({
    trigger: element,
    onEnter: function () {
      playAnimation();
      ScrollTrigger.getById(this.vars.id).kill();
    }
  });
});