UNPKG

alrdy-animate

Version:

A library to handle animations on scroll with GSAP integration.

1 lines 1.85 kB
"use strict";(this.webpackChunkAlrdyAnimate=this.webpackChunkAlrdyAnimate||[]).push([[298],{402:(t,e,n)=>{function a(t){var e=!1,n=function(t,n,a){n>=a&&!e?(t.classList.add("is-scrolled"),e=!0):n<a&&e&&(t.classList.remove("is-scrolled"),e=!1)};return{nav:function(e){var a=document.querySelector("[aa-nav]");if(a){var r=a.getAttribute("aa-nav")||"hide",i=a.getAttribute("aa-ease")||"power2.out",o=parseFloat(a.getAttribute("aa-duration"))||.6,c=parseFloat(a.getAttribute("aa-distance"))||1,s=r.includes("-")&&parseInt(r.split("-").pop())||100;requestAnimationFrame((function(){var e=window.scrollY;r.includes("change")&&n(a,e,s),r.includes("hide")&&e>50&&t.set(a,{y:"".concat(-100*c,"%")})})),e.create({trigger:document.body,start:"top top",end:"bottom bottom",onUpdate:function(e){var u,l,d,v=e.direction,f=window.scrollY;r.includes("hide")&&(1===v?t.to(a,{y:"".concat(-100*c,"%"),duration:2*o,ease:i,overwrite:!0}):(u=a,l=o,d=i,t.to(u,{y:"0%",duration:l,ease:d,overwrite:!0}))),r.includes("change")&&n(a,f,s)}})}},initNavigationTracking:function(t){if(t){var e=document.querySelectorAll("[aa-scroll-target]");if(0!==e.length){var n=[];e.forEach((function(t){var e=t.getAttribute("aa-scroll-target"),a=document.querySelector(e);a&&n.push({navItem:t,section:a,id:e})})),0!==n.length&&n.forEach((function(n){var a=n.navItem,r=n.section;n.id,t.create({trigger:r,start:"0% 50%",end:"100% 50%",onEnter:function(){e.forEach((function(t){t.classList.remove("is-current")})),a.classList.add("is-current")},onEnterBack:function(){e.forEach((function(t){t.classList.remove("is-current")})),a.classList.add("is-current")},onLeave:function(){a.classList.remove("is-current")},onLeaveBack:function(){a.classList.remove("is-current")}})}))}}else console.warn("GSAP ScrollTrigger not available for navigation tracking")}}}n.r(e),n.d(e,{createNavAnimations:()=>a})}}]);