PageSourceSearch

https://avani.ch/cdn/shop/t/38/assets/component-theme-parallax.js?v=42698133656855729541769562245

js avani.ch collected 2026-10-06 21:34:51 UTC 2,318 bytes, 2 lines download raw bytes

1(()=>{if(!customElements.get("theme-parallax")){class ThemeParallax extends HTMLElement{constructor(){super(),this.handleScroll=this.handleScroll.bind(this),this.handleIntersection=this.handleIntersection.bind(this),this.parallaxEnabled=this.getAttribute("data-parallax-enabled")==="true",this.isVisible=!0}connectedCallback(){if(this.parallaxEnabled){if(this.imageElement=this.querySelector(".parallax-child")||this.firstElementChild,!this.imageElement){console.warn("theme-parallax: no child element found for parallax effect.");return}"IntersectionObserver"in window&&(this.observer=new IntersectionObserver(this.handleIntersection,{root:null,threshold:0}),this.observer.observe(this)),this.handleScroll(),requestAnimationFrame(()=>{this.imageElement.getBoundingClientRect(),this.imageElement.style.transition="transform 0.1s cubic-bezier(.01, .56, 1, 1)"}),this.isVisible&&(window.addEventListener("scroll",this.handleScroll,{passive:!0}),window.addEventListener("resize",this.handleScroll))}}disconnectedCallback(){window.removeEventListener("scroll",this.handleScroll),window.removeEventListener("resize",this.handleScroll),this.observer&&this.observer.disconnect()}handleIntersection(entries){entries.forEach(entry=>{this.isVisible=entry.isIntersecting,this.isVisible?(window.addEventListener("scroll",this.handleScroll,{passive:!0}),window.addEventListener("resize",this.handleScroll),this.handleScroll()):(window.removeEventListener("scroll",this.handleScroll),window.removeEventListener("resize",this.handleScroll))})}handleScroll(){this.rafId||(this.rafId=requestAnimationFrame(()=>{const containerRect=this.getBoundingClientRect(),containerHeight=containerRect.height,extra=this.imageElement.offsetHeight-containerHeight,initialTransform=-extra/2,containerCenter=containerRect.top+containerHeight/2,viewportCenter=window.innerHeight/2,totalDistance=(window.innerHeight+containerHeight)/2,ratio=(containerCenter-viewportCenter)/totalDistance;let newTransform=initialTransform-ratio*(extra/2);newTransform=Math.max(-extra,Math.min(0,newTransform)),this.imageElement.style.transform=`translate3d(0, ${newTransform}px, 0)`,this.rafId=null}))}}customElements.define("theme-parallax",ThemeParallax)}})();
2//# sourceMappingURL=/cdn/shop/t/38/assets/component-theme-parallax.js.map?v=42698133656855729541769562245

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.