(function() { 'use strict'; jQuery.noConflict(); gsap.registerPlugin(ScrollTrigger); function createScrollTimeline(trigger, start) { return gsap.timeline({ scrollTrigger: { trigger: trigger, start: start, end: '+=25%', scrub: true } }); } function initAnimations() { jQuery('.sixwrap .div1, .sixwrap .div2, .sixwrap .div3, .sixwrap .div4, .sixwrap .div5, .sixwrap .div6, .sixwrap .div7') .css({ opacity: 0, display: 'block' }); gsap.timeline({ scrollTrigger: { trigger: '.sixwrap', start: 'top top', end: '+=250%', pin: true, scrub: true } }); gsap.timeline({ scrollTrigger: { trigger: '.sixwrap .div0', start: 'top top', end: '+=50%', scrub: true } }).to('.sixwrap .div0', { duration: 1, opacity: 1 }); var divConfigs = [ { div: '.div1', start: 'top -175%' }, { div: '.div2', start: 'top -125%' }, { div: '.div3', start: 'top -75%' }, { div: '.div4', start: 'top -25%' } ]; divConfigs.forEach(function(config) { createScrollTimeline('.sixwrap ' + config.div, config.start) .to('.sixwrap ' + config.div, { duration: 1, opacity: 1 }); }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initAnimations); } else { initAnimations(); } })();