Lay Theme Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Search

    GSAP scrolltrigger / lottie animation

    General Discussion
    2
    3
    17
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • ffinger
      ffinger last edited by ffinger

      Hey laythemers,

      I just tried to work with GSAP framework and the Scrolltrigger plugin and it works fine so far.
      But I fail to run a lottie animation with the Scrolltrigger plugin.

      GSAP Docs provide a little helper function for this, which I used:

      function LottieScrollTrigger(vars) {
          let playhead = { frame: 0 },
              target = gsap.utils.toArray(vars.target)[0],
              speeds = { slow: "+=2000", medium: "+=1000", fast: "+=500" },
              st = { trigger: target, pin: true, start: "top top", end: speeds[vars.speed] || "+=1000", scrub: 1 },
              ctx = gsap.context && gsap.context(),
              animation = lottie.loadAnimation({
                  container: target,
                  renderer: vars.renderer || "svg",
                  loop: false,
                  autoplay: false,
                  path: vars.path,
                  rendererSettings: vars.rendererSettings || { preserveAspectRatio: 'xMidYMid slice' }
              });
          for (let p in vars) { // let users override the ScrollTrigger defaults
              st[p] = vars[p];
          }
          animation.addEventListener("DOMLoaded", function () {
              let createTween = function () {
                  animation.frameTween = gsap.to(playhead, {
                      frame: animation.totalFrames - 1,
                      ease: "none",
                      onUpdate: () => animation.goToAndStop(playhead.frame, true),
                      scrollTrigger: st
                  });
                  return () => animation.destroy && animation.destroy();
              };
              ctx && ctx.add ? ctx.add(createTween) : createTween();
              // in case there are any other ScrollTriggers on the page and the loading of this Lottie asset caused layout changes
              ScrollTrigger.sort();
              ScrollTrigger.refresh();
          });
          return animation;
      }
      

      I deactivated lazyloading, all kind of transition, and activated compatibility mode. I think it has something to do with the addEventListener "DOMloaded"? But I can't get my head around this. Anybody a hint to solve this?

      Cheers
      Felix

      https://www.felixfinger.de

      1 Reply Last reply Reply Quote 0
      • ffinger
        ffinger last edited by

        Ok I just figured it out myself. For everyone having the same issue: I haven't loaded the lottie web framework, but only the lottie player. So far I only embedded lottie animations via the player and didn't know I need the framework :)

        So you just need to load the web framework instead of the player in your "Custom CSS & HTML" -> "Custom <head> content" Tab:

        <script src="https://cdnjs.cloudflare.com/ajax/libs/lottie-web/5.12.1/lottie.min.js"></script>
        

        Cheers!

        https://www.felixfinger.de

        1 Reply Last reply Reply Quote 0
        • arminunruh
          arminunruh Global Moderator last edited by

          nice! i see more and more people wanting to use lottie mmh

          1 Reply Last reply Reply Quote 1
          • First post
            Last post
          Post a link to where the problem is if possible, please <3
          I don't answer or check forum DMs, please just post on the forum.
          Forgot your key, lost your files, need a previous Lay Theme or Addon version? Go to www.laykeymanager.com

          Before you post:

          Use the Search Feature. Maybe there is already a solution to your issue.

          1. Update Lay Theme and all Lay Theme Addons
          2. Disable all Plugins
          3. Go to Lay Options → Custom CSS & HTML, click "Turn Off All Custom Code ", click "Save Changes"
          4. When using a WordPress Cache plugin, disable it or clear your cache. Now see if your problem solved itself.
          Go here, see if your problem is listed here:
          Troubleshooting

          When you post:
          1. Post a link to where the problem is
          2. If the problem is difficult to explain, post screenshots / link to a video to explain it

          Thanks!

          Online Users

          K
          J

          Recent Topics

          • B

            Portrait images are cut off in carousel

          • J

            Images Size when scale Browser

          • Search as icon instead of text?

          • FILTER Categories showing all projects

          laytheme.com