-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathcanvas-nest.js
More file actions
1 lines (1 loc) · 1.75 KB
/
canvas-nest.js
File metadata and controls
1 lines (1 loc) · 1.75 KB
1
!function(){var t,e,n,i=document.createElement("canvas"),a=i.getContext("2d"),d=(t=document.getElementsByTagName("script"),e=t.length,n=t[e-1],{length:e,z:n.getAttribute("zIndex")||-1,opacity:n.getAttribute("opacity")||.5,color:n.getAttribute("color")||"0,0,0",count:n.getAttribute("count")||99});function o(){W=i.width=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,H=i.height=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}i.id="c_n"+d.length,i.style.cssText="position:fixed;top:0;left:0;z-index:"+d.z+";opacity:"+d.opacity,document.getElementsByTagName("body")[0].appendChild(i),o(),window.onresize=o;for(var c=Math.random,m=[],u=0;u<d.count;u++){var l=c()*W,x=c()*H,y=2*c()-1,r=2*c()-1;m.push({x:l,y:x,xa:y,ya:r,max:6e3})}var f={x:null,y:null,max:2e4};window.onmousemove=function(t){t=t||window.event,f.x=t.clientX,f.y=t.clientY},window.onmouseout=function(){f.x=null,f.y=null};var s=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/45)};function w(){a.clearRect(0,0,W,H);var n,i,o=[f].concat(m);m.forEach(function(t){t.x+=t.xa,t.y+=t.ya,t.xa=t.xa*(t.x>W||t.x<0?-1:1),t.ya=t.ya*(t.y>H||t.y<0?-1:1),a.fillRect(t.x-.5,t.y-.5,1,1);for(var e=0;e<o.length;e++)t!==(n=o[e])&&null!==n.x&&null!==n.y&&(x_diff=t.x-n.x,y_diff=t.y-n.y,distance=x_diff*x_diff+y_diff*y_diff,distance<n.max&&(n===f&&distance>n.max/2&&(t.x=t.x-.03*x_diff,t.y=t.y-.03*y_diff),i=(n.max-distance)/n.max,a.beginPath(),a.lineWidth=i/2,a.strokeStyle="rgba("+d.color+","+(.2+i)+")",a.moveTo(t.x,t.y),a.lineTo(n.x,n.y),a.stroke()));o.splice(o.indexOf(t),1)}),s(w)}setTimeout(function(){w()},100)}();