diff --git a/frontend/components/home/Hero.vue b/frontend/components/home/Hero.vue index f38cbbb..513ede0 100644 --- a/frontend/components/home/Hero.vue +++ b/frontend/components/home/Hero.vue @@ -11,7 +11,7 @@ import useHomeData from "~/composables/api/home/useHomeData"; const { data: homeData } = useHomeData(); const { $gsap: gsap, $ScrollTrigger: ScrollTrigger } = useNuxtApp(); const swiper_instance = ref(null); -const showLoadingOverlay = useState('showLoadingOverlay'); +const showLoadingOverlay = useState("showLoadingOverlay"); const observerTarget = ref(null); const shouldPauseVideos = ref(false); @@ -27,6 +27,7 @@ const isMuted = ref(true); const slidesPerView = ref(1); let gsapTimeline: gsap.core.Timeline; +let scrollTrigger: ScrollTrigger; // methods @@ -55,11 +56,7 @@ watch(() => [shouldPauseVideos.value, swiper_instance.value?.realIndex], () => { // lifecycle -onMounted(() => { - updateVideoStates(); - - gsapTimeline = gsap.timeline(); - +const initializeGsapAnimation = () => { gsap.to("#header-navbar", { background: "transparent", filter: "invert(100%)" @@ -100,8 +97,27 @@ onMounted(() => { }, scale: 1 }, "="); +}; - ScrollTrigger.create({ +const resetTimelineForMobile = () => { + gsap.to("#header-navbar", { + background: "white", + filter: "invert(0%)" + }); + gsap.set(".header-slider-item", { + borderRadius: "20px", + height: "450px" + }); +}; + +onMounted(() => { + updateVideoStates(); + + gsapTimeline = gsap.timeline(); + + initializeGsapAnimation(); + + scrollTrigger = ScrollTrigger.create({ trigger: "#header-slider-container", animation: gsapTimeline, scrub: 1, @@ -110,6 +126,25 @@ onMounted(() => { // markers: true, end: "bottom top" }); + + setTimeout(() => { + if (window.innerWidth > 768) { + scrollTrigger.enable(); + } else { + resetTimelineForMobile(); + scrollTrigger.disable(); + } + }, 100); + + window.addEventListener("resize", () => { + if (window.innerWidth > 768) { + scrollTrigger.enable(); + } else { + resetTimelineForMobile(); + scrollTrigger.disable(); + } + }); + }); onUnmounted(() => { @@ -122,18 +157,16 @@ onUnmounted(() => {