-
Notifications
You must be signed in to change notification settings - Fork 2
/
jparticle.jquery.min.js
1 lines (1 loc) · 5.23 KB
/
jparticle.jquery.min.js
1
!function e(t){"use strict";var n,i;i={},t.fn.jParticle=function e(i){return this.each(function(e,a){"object"==typeof a.sandbox&&t(a).removeJParticle(),a.sandbox=n(a,i)}),this},t.fn.removeJParticle=function e(){return this.each(function(e,t){t.sandbox&&(t.sandbox.remove(),delete t.sandbox)}),this},t.fn.freezeJParticle=function e(){return this.each(function(e,t){t.sandbox&&t.sandbox.freeze()}),this},t.fn.unfreezeJParticle=function e(){return this.each(function(e,t){t.sandbox&&t.sandbox.unfreeze()}),this},n=function e(n,a){var r,o;return(r={}).canvas={},r.mouse={},r.particles=[],r.isAnimated=!1,r.initialize=function e(t,n){r.initParams(n),r.initHTML(t),r.initParticles(),r.initEvents(),r.initAnimation()},r.initParams=function e(n){n&&n.color&&(!n.particle||n.particle&&!n.particle.color)&&(n.particle||(n.particle={}),n.particle.color=n.color),r.params=t.extend({particlesNumber:150,linkDist:20,createLinkDist:150,disableLinks:!1,disableMouse:!1,background:"black",color:"#f0f0f0",width:null,height:null,linksWidth:1},n)},r.initHTML=function e(n){var i;(i=r.canvas).container=t(n),i.element=t("<canvas/>"),i.context=i.element.get(0).getContext("2d"),i.container.append(i.element),i.element.css("display","block"),i.element.get(0).width=r.params.width?r.params.width:i.container.width(),i.element.get(0).height=r.params.height?r.params.height:i.container.height(),i.element.css("background",r.params.background)},r.resize=function e(t,n){t&&(canvas.element.get(0).width=t),n&&(canvas.element.get(0).height=n)},r.initParticles=function e(){var t,n;for(t=0,n=r.params.particlesNumber;t<n;t+=1)r.particles.push(o(r.canvas.element.get(0),r.params.particle))},r.initEvents=function e(){r.canvas.element.mouseenter(function e(){r.mouse.hoverCanvas=!0,r.isAnimated||r.draw()}),r.canvas.element.mouseleave(function e(){r.mouse.hoverCanvas=!1}),r.canvas.element.mousemove(function e(n){r.mouse=t.extend(r.mouse,i.getMousePosition(n,r.canvas.element[0]))})},r.initAnimation=function e(){window.requestAnimFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.ORequestAnimationFrame||window.msRequestAnimationFrame||function e(t){setTimeOut(t,1e3/60)},r.isAnimated=!0,r.draw()},r.draw=function e(){var t,n,i,a,o,s;for(t=0,i=r.particles.length,(a=r.canvas).context.clearRect(0,0,a.element.get(0).width,a.element.get(0).height);t<i;t+=1)if(o=r.particles[t],r.isAnimated&&o.update(),o.draw(),!r.params.disableMouse&&r.mouse.hoverCanvas&&r.drawLink(o.getPosition("x"),o.getPosition("y"),r.mouse.x,r.mouse.y),!r.params.disableLinks)for(n=t+1;n<i;n+=1)s=r.particles[n],r.drawLink(o.getPosition("x"),o.getPosition("y"),s.getPosition("x"),s.getPosition("y"));r.requestID=window.requestAnimFrame(r.draw)},r.drawLink=function e(t,n,a,o){var s;i.getDistance(t,n,a,o)<=r.params.createLinkDist&&((s=r.canvas.context).save(),s.beginPath(),s.lineWidth=r.params.linksWidth,s.moveTo(t,n),s.lineTo(a,o),s.globalAlpha=r.getOpacityLink(t,n,a,o),s.strokeStyle=r.params.color,s.lineCap="round",s.stroke(),s.closePath(),s.restore())},r.getOpacityLink=function e(t,n,a,o){var s,c,u,m;return s=i.getDistance(t,n,a,o),u=r.params.linkDist,m=r.params.createLinkDist,c=s<=u?1:s>m?0:1-(s-u)*100/(m-u)/100},r.freeze=function e(){r.isAnimated&&(r.isAnimated=!1)},r.unfreeze=function e(){r.isAnimated||(r.isAnimated=!0)},r.remove=function e(){r.canvas.element.remove()},o=function e(n,a){var r;return(r={}).canvas={},r.vector={},r.initialize=function e(n,i){r.params=t.extend({color:"#f0f0f0",minSize:2,maxSize:5,speed:20},i),r.setCanvasContext(n),r.initSize(),r.initPosition(),r.initVectors()},r.initPosition=function e(){r.x=i.getRandNumber(0+r.radius,r.canvas.element.width-r.radius),r.y=i.getRandNumber(0+r.radius,r.canvas.element.height-r.radius)},r.initSize=function e(){r.size=i.getRandNumber(r.params.minSize,r.params.maxSize),r.radius=r.size/2},r.initVectors=function e(){do r.vector.x=i.getRandNumber(-r.params.speed/60,r.params.speed/60,!1),r.vector.y=i.getRandNumber(-r.params.speed/60,r.params.speed/60,!1);while(0==r.vector.x||0==r.vector.y)},r.setCanvasContext=function e(t){var n;if(r.canvas.element=t,"object"==typeof(n=t.getContext("2d"))&&"object"==typeof n.canvas)r.canvas.context=n;else throw"Error: Can't set canvas context to Particle because context isn't a CanvasRenderingContext2D object."},r.draw=function e(){var t=r.canvas.context;t.beginPath(),t.arc(r.x,r.y,r.size/2,0,2*Math.PI),t.fillStyle=r.params.color,t.fill(),t.closePath()},r.update=function e(){r.x+=r.vector.x,r.y+=r.vector.y,(0>r.x-r.radius||r.x+r.radius>r.canvas.element.width)&&(r.vector.x=-r.vector.x),(0>r.y-r.radius||r.y+r.radius>r.canvas.element.height)&&(r.vector.y=-r.vector.y)},r.getPosition=function e(t){return"string"==typeof t&&"x"!=t&&"y"!=t&&(t=null),"string"==typeof t?r[t]:{x:r.x,y:r.y}},r.initialize(n,a),{getPosition:r.getPosition,update:r.update,draw:r.draw}},r.initialize(n,a),{remove:r.remove,freeze:r.freeze,unfreeze:r.unfreeze,resize:r.resize}},i.getRandNumber=function e(t,n,i){var a;return null==t&&(t=0),null==n&&(n=10),null==i&&(i=!0),a=Math.random()*(n-t)+t,i?Math.round(a):a},i.getDistance=function e(t,n,i,a){return Math.sqrt(Math.pow(i-t,2)+Math.pow(a-n,2))},i.getMousePosition=function e(n,i){var a;return void 0===i&&(i=t("body")[0]),a=i.getBoundingClientRect(),{x:n.clientX-a.left,y:n.clientY-a.top}}}(jQuery);