forked from despeset/glitz.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathglitz.min.js
2 lines (2 loc) · 10.5 KB
/
glitz.min.js
1
2
/** glitz.js v0.3.02 2013-04-09 03:04 http://github.com/danielmendel/glitz.js/license.txt **/
!function(){for(var n=["ms","moz","webkit","o"],t=0;n.length>t&&!window.requestAnimationFrame;++t)window.requestAnimationFrame=window[n[t]+"RequestAnimationFrame"];window.requestAnimationFrame=window.requestAnimationFrame||function(){}}(),!function(n){function t(){return function(n){return this instanceof arguments.callee?"function"==typeof this.init?this.init.apply(this,n&&n.callee?n:arguments):!1:new arguments.callee(arguments)}}function e(n,t){var e,i=0,r=n&&n.length?n.length:n,a="number"==typeof n;for(i=0;r>i&&(e=t(a?i:n[i],i),e===void 0?!0:e);i++);}function i(n,t){for(var e in n)f.call(n,e)&&t.call(n,e)}function r(n){if(n instanceof Array){var t=[];e(n,function(n){t.push(r(n))})}else{var t={};i(n,function(e){t[e]="object"!=typeof n[e]?n[e]:r(n[e])})}return t}function a(n){var t,e;return(t=/^\s?[0-9]*,[0-9]*,[0-9]*/.exec(n))&&(n="rgba("+n+")"),(t=/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(n))?e=[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16),1]:(t=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(n))?e=[17*parseInt(t[1],16),17*parseInt(t[2],16),17*parseInt(t[3],16),1]:(t=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(n))?e=[parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),1]:(t=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9\.]*)\s*\)/.exec(n))&&(e=[parseInt(t[1],10),parseInt(t[2],10),parseInt(t[3],10),parseFloat(t[4])]),e}function o(n,t,e){i(t,function(i){return"object"==typeof t[i]?o(n[i],t[i],e[i]):n[i]=e[i]})}function s(n,t){i(n,function(e){switch(typeof n[e]){case"string":if(n[e].match(/^\+/))return n[e]=t[e]+parseFloat(n[e].replace(/^\+/,""));if(n[e].match(/^-/))return n[e]=t[e]-parseFloat(n[e].replace(/^\-/,""));if(n[e].match(/^(#|rgb)/))return n[e]=a(n[e]),t[e]=a(t[e]);break;case"object":s(n[e],t[e]);break;default:}})}function u(n){function t(n){for(var t=new r,e=1;e++<arguments.length;)t.push(arguments[e]);if(t.animations=[],t.init&&t.init(),!arguments.length)return t;for(k in n)n.hasOwnProperty(k)&&(t[k]=n[k]);return t}do var e="___glitzBorrowedArray"+ +new Date;while(window.hasOwnProperty(e));var i=document.createElement("iframe");i.style.display="none",document.body.appendChild(i),frames[frames.length-1].document.write("<script>parent."+e+" = Array;</script>");var r=window[e];delete window[e];for(k in l)l.hasOwnProperty(k)&&(r.prototype[k]=l[k]);for(k in n)n.hasOwnProperty(k)&&(r.prototype[k]=n[k]);return t.Array=r,t}var c={defaultEasing:"easeOutQuad"},f=Object.prototype.hasOwnProperty,h=t();h.prototype={to:{},from:{},renderable:null,easing:c.defaultEasing,duration:0,startAt:null,endAt:null,finished:!1,eachFrame:null,done:null,init:function(n,t){var e=this;return e.duration=t.duration||0,e.startAt=(new Date).getTime(),e.endAt=e.startAt+e.duration,e.done=t.done||null,e.to=t.to||{},e.easing=t.easing||e.easing,e.renderable=n,e.renderable.engine?e.renderable.engine.registerAnimation():0,e.from={},o(e.from,e.to,n),s(e.to,e.from),this},step:function(){var n=this,t=(new Date).getTime(),e=n.endAt-t,r=(1/(n.duration/e),n.renderable),a=n.to,o=n.from,s=n.duration,u=n.easing;return 1>=e?(n.stop(),!1):(!function c(n,t,r){i(n,function(i){return"object"==typeof n[i]?n[i]instanceof Array&&4===n[i].length?r[i]="rgba("+parseInt(g[u](s-e,t[i][0],n[i][0]-t[i][0],s))+","+parseInt(g[u](s-e,t[i][1],n[i][1]-t[i][1],s))+","+parseInt(g[u](s-e,t[i][2],n[i][2]-t[i][2],s))+","+g[u](s-e,t[i][3],n[i][3]-t[i][3],s)+")":c(n[i],t[i],r[i]):r[i]=g[u](s-e,t[i],n[i]-t[i],s)})}(a,o,r),!0)},stop:function(){var n=this,t=n.to,e=n.renderable;return!function r(n,t){i(t,function(e){return"object"==typeof t[e]?t[e]instanceof Array&&4===t[e].length?n[e]="rgba("+parseInt(t[e][0])+","+parseInt(t[e][1])+","+parseInt(t[e][2])+","+parseFloat(t[e][3])+")":r(n[e],t[e]):n[e]=t[e]})}(e,t),n.finished=!0,"function"==typeof n.done&&n.done.call(e,n),e.engine&&e.engine.unregisterAnimation()}};var l={x:0,y:0,scale:1,engine:null,_id:-1,animations:[],init:function(n){var t=this,n=n||{};i(n,function(e){t[e]=n[e]})},setup:function(n){n.translate(this.x,this.y),n.scale(this.scale,this.scale)},render:function(){},push:function(n){n.parent=this,n.registerEngine(this.engine),Array.prototype.push.call(this,n),n._id=this.length-1},registerEngine:function(n){this.engine=n,e(this,function(t){t.registerEngine(n)})},removeChild:function(n){Array.prototype.splice.call(this,n._id,1),e(this,function(t){t._id>n._id&&t._id--})},remove:function(){return this.parent.removeChild(this),this},animateSeries:function(n){if(!n.length)return!1;var t=this,e=n.shift(),i=e.done;return e instanceof Array?t.animateParallel(e,function(){t.animateSeries(n)}):(e.done=function(){t.animateSeries(n),i&&i.call(this)},t.animations.push(new h(t,e)))},animateParallel:function(n,t){var i=this;n.sort(function(n,t){return n.duration<t.duration});var r={duration:0};!function a(n){e(n,function(n){return n instanceof Array?a(n):(r=n.duration>r.duration?n:r,void 0)})}(n);var o=r.done;return r.done=function(){t.call(this),o&&o.call(this)},e(n,function(n){return n instanceof Array?i.animateSeries(n,t):(i.animations.push(new h(i,n)),void 0)}),!0},animate:function(n,t,e){for(var i={},a=this.animations.length;a--;)!this.animations[a].finished&&this.engine.unregisterAnimation();return this.animations.length=0,n instanceof Array?this.animateSeries(r(n)):("number"==typeof t?(i.duration=t,i.done=arguments[2]||function(){}):i={duration:t.duration||250,done:t.done||function(){},easing:t.easing||glitz.config.defaultEasing},"function"==typeof t&&(i.done=t),"function"==typeof e&&(i.done=e),i.to=n,this.animations.push(new h(this,i)),void 0)},draw:function(n){var t=this,n=n||t.engine.ctx,i=t.animations;n.save();var r=[];i.length&&e(i,function(n,t){n.finished?r.push(t):n.step()}),e(r.reverse(),function(n){i.splice(n,1)}),t.setup(n),t.render(n),e(t,function(t){t.draw(n)}),n.restore()}},d=t();d.prototype={_dirty:!0,FPS:1e3/60,runningAnimations:0,canvas:null,ctx:null,layout:null,running:!1,init:function(n){var t=this;t.canvas=window.jQuery!==void 0?jQuery(n)[0]:n,t.ctx=t.canvas.getContext("2d"),t.layout=new(u({engine:t,width:t.canvas.width,height:t.canvas.height,backgroundColor:"#fff",clearFrames:!0,onLoop:function(){},background:function(){},setup:function(n){this.onLoop(),n.fillStyle=this.backgroundColor,this.clearFrames&&n.fillRect(-1,-1,this.width+1,this.height+1),this.background(n),n.translate(this.x,this.y),n.scale(this.scale,this.scale)}}));var e=-1;requestAnimationFrame(function i(){0>e&&t.start(),clearTimeout(e),e=setTimeout(function(){e=-1,t.stop()},100),requestAnimationFrame(i)})},dirty:function(){this._dirty||(this._dirty=!0,this.start())},clean:function(){this._dirty&&(this._dirty=!1,this.stop())},start:function(){var n=this;n.running||(n.running=setInterval(function(){return n._dirty?(n.layout.draw(),1>n.runningAnimations?n.clean():null):n.clean()},n.FPS))},stop:function(){clearInterval(this.running),this.running=!1},loop:function(n){this.layout.onLoop=n||this.layout.onLoop,this.registerAnimation()},registerAnimation:function(){return this.runningAnimations++,this.dirty(),!0},unregisterAnimation:function(){return this.runningAnimations--,!0},push:function(n){this.layout.push(n),this.dirty()},setSize:function(n,t){var e=this.layout,i=this.canvas;e.width=i.width=n,e.height=i.height=t},fps:function(n){this.FPS=1e3/n,this.running&&(this.stop(),this.start())},filter:function p(n,t,e){var i=e||[],r=t||this.layout;r.constructor===n.Array&&i.push(r);for(var a=0,o=r.length;o>a;a++)p(n,r[a],i);return i}};var g=h.easingLib={easeInQuad:function(n,t,e,i){return e*(n/=i)*n+t},easeOutQuad:function(n,t,e,i){return-e*(n/=i)*(n-2)+t},easeInOutQuad:function(n,t,e,i){return 1>(n/=i/2)?e/2*n*n+t:-e/2*(--n*(n-2)-1)+t},easeInCubic:function(n,t,e,i){return e*(n/=i)*n*n+t},easeOutCubic:function(n,t,e,i){return e*((n=n/i-1)*n*n+1)+t},easeInOutCubic:function(n,t,e,i){return 1>(n/=i/2)?e/2*n*n*n+t:e/2*((n-=2)*n*n+2)+t},easeInQuart:function(n,t,e,i){return e*(n/=i)*n*n*n+t},easeOutQuart:function(n,t,e,i){return-e*((n=n/i-1)*n*n*n-1)+t},easeInOutQuart:function(n,t,e,i){return 1>(n/=i/2)?e/2*n*n*n*n+t:-e/2*((n-=2)*n*n*n-2)+t},easeInQuint:function(n,t,e,i){return e*(n/=i)*n*n*n*n+t},easeOutQuint:function(n,t,e,i){return e*((n=n/i-1)*n*n*n*n+1)+t},easeInOutQuint:function(n,t,e,i){return 1>(n/=i/2)?e/2*n*n*n*n*n+t:e/2*((n-=2)*n*n*n*n+2)+t},easeInSine:function(n,t,e,i){return-e*Math.cos(n/i*(Math.PI/2))+e+t},easeOutSine:function(n,t,e,i){return e*Math.sin(n/i*(Math.PI/2))+t},easeInOutSine:function(n,t,e,i){return-e/2*(Math.cos(Math.PI*n/i)-1)+t},easeInExpo:function(n,t,e,i){return 0==n?t:e*Math.pow(2,10*(n/i-1))+t},easeOutExpo:function(n,t,e,i){return n==i?t+e:e*(-Math.pow(2,-10*n/i)+1)+t},easeInOutExpo:function(n,t,e,i){return 0==n?t:n==i?t+e:1>(n/=i/2)?e/2*Math.pow(2,10*(n-1))+t:e/2*(-Math.pow(2,-10*--n)+2)+t},easeInCirc:function(n,t,e,i){return-e*(Math.sqrt(1-(n/=i)*n)-1)+t},easeOutCirc:function(n,t,e,i){return e*Math.sqrt(1-(n=n/i-1)*n)+t},easeInOutCirc:function(n,t,e,i){return 1>(n/=i/2)?-e/2*(Math.sqrt(1-n*n)-1)+t:e/2*(Math.sqrt(1-(n-=2)*n)+1)+t},easeInElastic:function(n,t,e,i){var r=1.70158,a=0,o=e;if(0==n)return t;if(1==(n/=i))return t+e;if(a||(a=.3*i),Math.abs(e)>o){o=e;var r=a/4}else var r=a/(2*Math.PI)*Math.asin(e/o);return-(o*Math.pow(2,10*(n-=1))*Math.sin((n*i-r)*2*Math.PI/a))+t},easeOutElastic:function(n,t,e,i){var r=1.70158,a=0,o=e;if(0==n)return t;if(1==(n/=i))return t+e;if(a||(a=.3*i),Math.abs(e)>o){o=e;var r=a/4}else var r=a/(2*Math.PI)*Math.asin(e/o);return o*Math.pow(2,-10*n)*Math.sin((n*i-r)*2*Math.PI/a)+e+t},easeInOutElastic:function(n,t,e,i){var r=1.70158,a=0,o=e;if(0==n)return t;if(2==(n/=i/2))return t+e;if(a||(a=i*.3*1.5),Math.abs(e)>o){o=e;var r=a/4}else var r=a/(2*Math.PI)*Math.asin(e/o);return 1>n?-.5*o*Math.pow(2,10*(n-=1))*Math.sin((n*i-r)*2*Math.PI/a)+t:.5*o*Math.pow(2,-10*(n-=1))*Math.sin((n*i-r)*2*Math.PI/a)+e+t},easeInBack:function(n,t,e,i,r){return void 0==r&&(r=1.70158),e*(n/=i)*n*((r+1)*n-r)+t},easeOutBack:function(n,t,e,i,r){return void 0==r&&(r=1.70158),e*((n=n/i-1)*n*((r+1)*n+r)+1)+t},easeInOutBack:function(n,t,e,i,r){return void 0==r&&(r=1.70158),1>(n/=i/2)?e/2*n*n*(((r*=1.525)+1)*n-r)+t:e/2*((n-=2)*n*(((r*=1.525)+1)*n+r)+2)+t},easeInBounce:function(n,t,e,i){return e-g.easeOutBounce(i-n,0,e,i)+t},easeOutBounce:function(n,t,e,i){return 1/2.75>(n/=i)?e*7.5625*n*n+t:2/2.75>n?e*(7.5625*(n-=1.5/2.75)*n+.75)+t:2.5/2.75>n?e*(7.5625*(n-=2.25/2.75)*n+.9375)+t:e*(7.5625*(n-=2.625/2.75)*n+.984375)+t},easeInOutBounce:function(n,t,e,i){return i/2>n?.5*g.easeInBounce(2*n,0,e,i)+t:.5*g.easeOutBounce(2*n-i,0,e,i)+.5*e+t}};n.glitz={Animation:h,Renderable:u,Engine:d,version:"0.1.2",config:c}}(window);