(function(){ const canvas = document.getElementById("nexadix-trail"); if(!canvas) return; const ctx = canvas.getContext("2d"); let w,h; function resize(){ w = canvas.width = window.innerWidth; h = canvas.height = window.innerHeight; } resize(); window.addEventListener("resize",resize); let trail = []; window.addEventListener("mousemove",e=>{ trail.push({x:e.clientX,y:e.clientY,life:1}); if(trail.length>80) trail.shift(); // max trail length }); function draw(){ ctx.clearRect(0,0,w,h); if(trail.length>1){ ctx.beginPath(); ctx.moveTo(trail[0].x,trail[0].y); for(let i=1;i{ trail.push({x:e.clientX,y:e.clientY,life:1}); if(trail.length>80) trail.shift(); // max trail length }); function draw(){ ctx.clearRect(0,0,w,h); if(trail.length>1){ ctx.beginPath(); ctx.moveTo(trail[0].x,trail[0].y); for(let i=1;i