PageSourceSearch

https://egculture.de/media/astroidpro/assets/cursors/filter-5/js/index.min.js?9c7b80

js egculture.de collected 2026-10-09 23:52:32 UTC 4,595 bytes, 1 lines download raw bytes

1(function($){const lerp=(a,b,n)=>(1-n)*a+n*b;const map=(x,a,b,c,d)=>(x-a)*(d-c)/(b-a)+c;const getCursorPos=ev=>{return{x:ev.clientX,y:ev.clientY}};let cursor={x:0,y:0};window.addEventListener("mousemove",ev=>cursor=getCursorPos(ev));class Cursor{DOM={elements:null};cursorElements=[];constructor(Dom_elems,triggerSelector="a"){this.DOM.elements=Dom_elems;[...this.DOM.elements].forEach(el=>this.cursorElements.push(new CursorElement(el)));[...document.querySelectorAll(triggerSelector)].forEach(link=>{link.addEventListener("mouseenter",()=>this.enter());link.addEventListener("mouseleave",()=>this.leave())})}enter(){for(const el of this.cursorElements){el.enter()}}leave(){for(const el of this.cursorElements){el.leave()}}}class CursorElement{DOM={el:null,inner:null,feTurbulence:null};radiusOnEnter=60;opacityOnEnter=1;radius;renderedStyles={tx:{previous:0,current:0,amt:.15},ty:{previous:0,current:0,amt:.15},radius:{previous:20,current:20,amt:.15},opacity:{previous:1,current:1,amt:.15}};bounds;filterId="#cursor-filter";primitiveValues={turbulence:0};constructor(DOM_el){this.DOM.el=DOM_el;this.DOM.inner=this.DOM.el.querySelector(".cursor__inner");this.DOM.feTurbulence=document.querySelector(`${this.filterId} > feTurbulence`);this.createFilterTimeline();this.DOM.el.style.opacity=0;this.bounds=this.DOM.el.getBoundingClientRect();this.radiusOnEnter=this.DOM.el.dataset.radiusEnter||this.radiusOnEnter;this.opacityOnEnter=this.DOM.el.dataset.opacityEnter||this.opacityOnEnter;for(const key in this.renderedStyles){this.renderedStyles[key].amt=this.DOM.el.dataset.amt||this.renderedStyles[key].amt}this.radius=this.DOM.inner.getAttribute("r");this.renderedStyles["radius"].previous=this.renderedStyles["radius"].current=this.radius;const onMouseMoveEv=()=>{this.renderedStyles.tx.previous=this.renderedStyles.tx.current=cursor.x-this.bounds.width/2;this.renderedStyles.ty.previous=this.renderedStyles.ty.previous=cursor.y-this.bounds.height/2;this.DOM.el.style.opacity=1;requestAnimationFrame(()=>this.render());window.removeEventListener("mousemove",onMouseMoveEv)};window.addEventListener("mousemove",onMouseMoveEv)}enter(){this.renderedStyles["opacity"].current=this.opacityOnEnter;this.filterTimeline.restart()}leave(){this.DOM.inner.style.filter="none";this.filterTimeline.kill();this.renderedStyles["radius"].current=this.radius;this.renderedStyles["opacity"].current=1}createFilterTimeline(){const turbulenceValues={from:.13,to:.15};this.filterTimeline=gsap.timeline({paused:true,onStart:()=>{this.DOM.feTurbulence.setAttribute("seed",Math.round(gsap.utils.random(1,20)));this.DOM.inner.style.filter=`url(${this.filterId}`;this.renderedStyles["opacity"].current=1},onUpdate:()=>{this.DOM.feTurbulence.setAttribute("baseFrequency",this.primitiveValues.turbulence);this.renderedStyles["opacity"].current=this.renderedStyles["opacity"].previous=map(this.primitiveValues.turbulence,turbulenceValues.from,turbulenceValues.to,1,0);this.renderedStyles["radius"].current=this.renderedStyles["radius"].previous=map(this.primitiveValues.turbulence,turbulenceValues.from,turbulenceValues.to,+this.radius,this.radiusOnEnter)},onComplete:()=>{this.DOM.inner.style.filter="none";this.renderedStyles["radius"].current=this.renderedStyles["radius"].previous=this.radius}}).to(this.primitiveValues,{duration:3,ease:"power4",startAt:{turbulence:turbulenceValues.from},turbulence:turbulenceValues.to})}render(){this.renderedStyles["tx"].current=cursor.x-this.bounds.width/2;this.renderedStyles["ty"].current=cursor.y-this.bounds.height/2;for(const key in this.renderedStyles){this.renderedStyles[key].previous=lerp(this.renderedStyles[key].previous,this.renderedStyles[key].current,this.renderedStyles[key].amt)}this.DOM.el.style.transform=`translateX(${this.renderedStyles["tx"].previous}px) translateY(${this.renderedStyles["ty"].previous}px)`;this.DOM.inner.setAttribute("r",this.renderedStyles["radius"].previous);this.DOM.el.style.opacity=this.renderedStyles["opacity"].previous;requestAnimationFrame(()=>this.render())}}$(document).ready(function(){$("body").append('<svg class="as-cursor" width="140" height="140" viewBox="0 0 140 140"><defs><filter id="cursor-filter" x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox"><feTurbulence type="fractalNoise" seed="1" baseFrequency="0" numOctaves="1" result="warp" /><feDisplacementMap xChannelSelector="R" yChannelSelector="G" scale="40" in="SourceGraphic" /></filter></defs><circle class="cursor__inner" cx="70" cy="70" r="20"/></svg>');const customCursor=new Cursor(document.querySelectorAll(".as-cursor"))})})(jQuery);

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.