{"version":3,"sources":["20240222Traveltopia_functions.js"],"names":["elements","document","querySelectorAll","check","entries","map","entry","isIntersecting","target","classList","add","observer","unobserve","IntersectionObserver","elementsFade","forEach","elem","observe","optionsFade","threshold","checkFade","observer2","productSlider","elem2","Swiper","noSwipingClass","slidesPerView","spaceBetween","effect","fadeEffect","crossFade","speed","loop","pagination","el","clickable","initialSlide","frame_count","gsap","registerPlugin","ScrollTrigger","productAnim","offset_value","timeline","paused","defaults","ease","Linear","easeNone","to","duration","backgroundPosition","fromTo","autoAlpha","create","trigger","start","end","pin","scrub","animation","y","scrollTrigger"],"mappings":"AASA,IAAMA,SAAWC,SAASC,iBAAiB,iBAE3C,SAASC,MAAMC,GACbA,EAAQC,IAAI,SAACC,GACPA,EAAMC,iBACRD,EAAME,OAAOC,UAAUC,IAAI,iBAC3BC,SAASC,UAAUN,EAAME,WAK/B,IAAMG,SAAW,IAAIE,qBAAqBV,OAMpCW,cAJNd,SAASe,QAAQ,SAACC,GAAD,OAAUL,SAASM,QAAQD,KAIvBf,SAASC,iBAAiB,uBAEzCgB,YAAc,CAClBC,UAAW,GAGb,SAASC,UAAUhB,GACjBA,EAAQC,IAAI,SAACC,GACPA,EAAMC,iBACRD,EAAME,OAAOC,UAAUC,IAAI,sBAC3BW,UAAUT,UAAUN,EAAME,WAKhC,IAAMa,UAAY,IAAIR,qBAAqBO,UAAWF,aAShDI,eAPNR,aAAaC,QAAQ,SAACQ,GAAD,OAAWF,UAAUJ,QAAQM,KAO5B,IAAIC,OAAQ,uBAAwB,CACxDC,eAAgB,WAChBC,cAAe,EACfC,aAAc,EACdC,OAAQ,OACRC,WAAY,CAAEC,WAAW,GACzBC,MAAO,EACPC,MAAM,EACNC,WAAY,CACVC,GAAI,kCACJC,WAAW,GAEbC,aAAc,KAWVC,aAFNC,KAAKC,eAAeC,eAEC,IAIfC,aAFAC,aAAe,IAAML,YAEPC,KAAKK,SAAS,CAChCC,QAAQ,EACRC,SAAU,CACRC,KAAMC,OAAOC,YAIdC,GAAG,eAAgB,CAAEC,SAAU,EAE9BC,mBAAqBT,aAAeL,YAAe,QACnDS,KAAM,SAAWT,YAAc,MAEhCe,OAAO,kBAAmB,CAAEF,SAAU,IAAMG,UAAW,GAAK,CAAEA,UAAW,GAAK,KAC9EJ,GAAG,kBAAmB,CAAEC,SAAU,IAAMG,UAAW,GAAK,SACxDJ,GAAG,kBAAmB,CAAEC,SAAU,EAAGG,UAAW,GAAK,UACrDJ,GAAG,kBAAmB,CAAEC,SAAU,IAAMG,UAAW,GAAK,QACxDJ,GAAG,kBAAmB,CAAEC,SAAU,EAAGG,UAAW,GAAK,WAGxDb,cAAcc,OAAO,CAGnBC,QAAS,eACTC,MAAO,gBAEPC,IAAK,SACLC,KAAK,EAELC,MAAO,EACPC,UAAWnB,cAGbH,KAAKW,GAAG,mBAAoB,CAC1BY,EAAG,IACHC,cAAe,CACbH,OAAO,KAIXrB,KAAKW,GAAG,mBAAoB,CAC1BY,GAAI,IACJC,cAAe,CACbH,OAAO","file":"20240222Traveltopia_functions.min.js","sourcesContent":["// FADE-IN-UP ELEMENTS ON SCROLL\r\n// SLIDER (SWIPER JS)\r\n// PRODUCT/CAPTIONS (360 ANIMATION)\r\n\r\n\r\n//\r\n// =FADE-IN-UP ELEMENTS ON SCROLL\r\n// --------------------------------------------------\r\n\r\nconst elements = document.querySelectorAll(\".msdw-animate\");\r\n\r\nfunction check(entries) {\r\n entries.map((entry) => {\r\n if (entry.isIntersecting) {\r\n entry.target.classList.add(\"msdw-animated\");\r\n observer.unobserve(entry.target);\r\n }\r\n });\r\n}\r\n\r\nconst observer = new IntersectionObserver(check);\r\n\r\nelements.forEach((elem) => observer.observe(elem));\r\n\r\n\r\n\r\nconst elementsFade = document.querySelectorAll(\".msdw-animate-fade\");\r\n\r\nconst optionsFade = {\r\n threshold: 1,\r\n}\r\n\r\nfunction checkFade(entries) {\r\n entries.map((entry) => {\r\n if (entry.isIntersecting) {\r\n entry.target.classList.add(\"msdw-animated-fade\");\r\n observer2.unobserve(entry.target);\r\n }\r\n });\r\n}\r\n\r\nconst observer2 = new IntersectionObserver(checkFade, optionsFade);\r\n\r\nelementsFade.forEach((elem2) => observer2.observe(elem2));\r\n\r\n\r\n//\r\n// =SLIDER (SWIPER JS)\r\n// --------------------------------------------------\r\n\r\nconst productSlider = new Swiper ('.msdw-product-slider', {\r\n noSwipingClass: \"no-swipe\",\r\n slidesPerView: 1,\r\n spaceBetween: 0,\r\n effect: \"fade\",\r\n fadeEffect: { crossFade: true },\r\n speed: 5,\r\n loop: false,\r\n pagination: {\r\n el: \".msdw-product-slider-pagination\",\r\n clickable: true,\r\n },\r\n initialSlide: 0,\r\n});\r\n\r\n\r\n//\r\n// =PRODUCT/CAPTIONS (360 ANIMATION)\r\n// --------------------------------------------------\r\n\r\n// *** DO NOT USE window.onload ***\r\ngsap.registerPlugin(ScrollTrigger);\r\n\r\nconst frame_count = 22; // total - 1\r\n // offset_value = viewerWidth;\r\n offset_value = 100 / frame_count;\r\n\r\nconst productAnim = gsap.timeline({\r\n paused: true,\r\n defaults: {\r\n ease: Linear.easeNone,\r\n // overwrite: true,\r\n }\r\n})\r\n .to(\".msdw-viewer\", { duration: 3,\r\n // backgroundPosition: (-offset_value * frame_count) + \"px 50%\",\r\n backgroundPosition: (offset_value * frame_count) + \"% 50%\",\r\n ease: \"steps(\" + frame_count + \")\",\r\n })\r\n .fromTo('.msdw-feature-1', { duration: 0.75, autoAlpha: 1 }, { autoAlpha: 1 }, \"<\")\r\n .to('.msdw-feature-1', { duration: 0.25, autoAlpha: 0 }, \"<0.75\")\r\n .to('.msdw-feature-2', { duration: 1, autoAlpha: 1 }, \"<-0.25\")\r\n .to('.msdw-feature-2', { duration: 0.25, autoAlpha: 0 }, \"<1.5\")\r\n .to('.msdw-feature-3', { duration: 1, autoAlpha: 1 }, \"<-0.25\");\r\n // .to({}, {duration: 0.2}); // just a little pause before unpinning\r\n\r\nScrollTrigger.create({\r\n // invalidateOnRefresh: true,\r\n // invalidateOnResizes: true,\r\n trigger: \".msdw-sticky\",\r\n start: \"center center\",\r\n // end: \"+=\" + frame_count * offset_value,\r\n end: \"+=1250\",\r\n pin: true,\r\n // scrub: true,\r\n scrub: 1,\r\n animation: productAnim,\r\n});\r\n\r\ngsap.to(\".msdw-parallax-1\", {\r\n y: 150,\r\n scrollTrigger: {\r\n scrub: true\r\n },\r\n});\r\n\r\ngsap.to(\".msdw-parallax-2\", {\r\n y: -900,\r\n scrollTrigger: {\r\n scrub: true\r\n },\r\n});\r\n"]}