custom-javascript.js 3.08 KB
import LocomotiveScroll from 'locomotive-scroll';
import  gsap  from "gsap";
import  ScrollTrigger  from "gsap/ScrollTrigger";
import  ScrollToPlugin  from "gsap/ScrollToPlugin";

//const scroll = new LocomotiveScroll();

document.addEventListener("DOMContentLoaded", function() {
    window.addEventListener('scroll', function() {
        if (window.scrollY > 57) {
            document.getElementById('main-nav').classList.add('fixed-top');
        } else {
            document.getElementById('main-nav').classList.remove('fixed-top');
        }
    });
});




gsap.registerPlugin(ScrollTrigger);

// Using Locomotive Scroll from Locomotive https://github.com/locomotivemtl/locomotive-scroll

// const locoScroll = new LocomotiveScroll({
//   el: document.querySelector("#js-scroll"),
//   smooth: true
// });

// each time Locomotive Scroll updates, tell ScrollTrigger to update too (sync positioning)
//locoScroll.on("scroll", ScrollTrigger.update);

// tell ScrollTrigger to use these proxy methods for the "#js-scroll" element since Locomotive Scroll is hijacking things
// ScrollTrigger.scrollerProxy("#js-scroll", {
//   scrollTop(value) {
//     return arguments.length ? locoScroll.scrollTo(value, 0, 0) : locoScroll.scroll.instance.scroll.y;
//   }, // we don't have to define a scrollLeft because we're only scrolling vertically.
//   getBoundingClientRect() {
//     return {top: 0, left: 0, width: window.innerWidth, height: window.innerHeight};
//   },
//   // LocomotiveScroll handles things completely differently on mobile devices - it doesn't even transform the container at all! So to get the correct behavior and avoid jitters, we should pin things with position: fixed on mobile. We sense it by checking to see if there's a transform applied to the container (the LocomotiveScroll-controlled element).
//   pinType: document.querySelector("#js-scroll").style.transform ? "transform" : "fixed"
// });

// var tl = gsap.timeline({
//   scrollTrigger: {
//     trigger: "#vc1",
//     scroller: "body",
//     markers:true,
//     scrub: true,
//     pin: true,
//     start: "top top",
//     end: "+=100%",
//   }
// });


var tl = gsap.timeline({
  scrollTrigger: {
    trigger: "#vc1",
    scroller: "body",
    markers:true,
    scrub: true,
    pin: true,
    start: "top top",
    end: "+=150%",
  }
});

var tl1 = gsap.timeline({
  scrollTrigger: {
    trigger: "#vc2",
    scroller: "body",
    markers:true,
    scrub: true,
    pin: true,
    start: "top top",
    end: "+=150%",
  }
});

// ScrollTrigger.create({
//   trigger: "#vc1",
//   scroller: "#js-scroll",
//   markers:true,
//   scrub: true,
//   pin: true,
//   start: "top top",
//   end: "+=100%"
// });

tl.to(".move_1", {y: -786}, 0).to(".move_2", {y: -486},0)
tl1.to(".move_3", {y: -786}, 0).to(".move_4", {y: -786},0)

// each time the window updates, we should refresh ScrollTrigger and then update LocomotiveScroll. 
//ScrollTrigger.addEventListener("refresh", () => locoScroll.update());

// after everything is set up, refresh() ScrollTrigger and update LocomotiveScroll because padding may have been added for pinning, etc.
//ScrollTrigger.refresh();