| /* |
| Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved. |
| Available via Academic Free License >= 2.1 OR the modified BSD license. |
| see: http://dojotoolkit.org/license for details |
| */ |
| |
| |
| if(!dojo._hasResource["dojo.fx.easing"]){ |
| dojo._hasResource["dojo.fx.easing"]=true; |
| dojo.provide("dojo.fx.easing"); |
| dojo.fx.easing={linear:function(n){ |
| return n; |
| },quadIn:function(n){ |
| return Math.pow(n,2); |
| },quadOut:function(n){ |
| return n*(n-2)*-1; |
| },quadInOut:function(n){ |
| n=n*2; |
| if(n<1){ |
| return Math.pow(n,2)/2; |
| } |
| return -1*((--n)*(n-2)-1)/2; |
| },cubicIn:function(n){ |
| return Math.pow(n,3); |
| },cubicOut:function(n){ |
| return Math.pow(n-1,3)+1; |
| },cubicInOut:function(n){ |
| n=n*2; |
| if(n<1){ |
| return Math.pow(n,3)/2; |
| } |
| n-=2; |
| return (Math.pow(n,3)+2)/2; |
| },quartIn:function(n){ |
| return Math.pow(n,4); |
| },quartOut:function(n){ |
| return -1*(Math.pow(n-1,4)-1); |
| },quartInOut:function(n){ |
| n=n*2; |
| if(n<1){ |
| return Math.pow(n,4)/2; |
| } |
| n-=2; |
| return -1/2*(Math.pow(n,4)-2); |
| },quintIn:function(n){ |
| return Math.pow(n,5); |
| },quintOut:function(n){ |
| return Math.pow(n-1,5)+1; |
| },quintInOut:function(n){ |
| n=n*2; |
| if(n<1){ |
| return Math.pow(n,5)/2; |
| } |
| n-=2; |
| return (Math.pow(n,5)+2)/2; |
| },sineIn:function(n){ |
| return -1*Math.cos(n*(Math.PI/2))+1; |
| },sineOut:function(n){ |
| return Math.sin(n*(Math.PI/2)); |
| },sineInOut:function(n){ |
| return -1*(Math.cos(Math.PI*n)-1)/2; |
| },expoIn:function(n){ |
| return (n==0)?0:Math.pow(2,10*(n-1)); |
| },expoOut:function(n){ |
| return (n==1)?1:(-1*Math.pow(2,-10*n)+1); |
| },expoInOut:function(n){ |
| if(n==0){ |
| return 0; |
| } |
| if(n==1){ |
| return 1; |
| } |
| n=n*2; |
| if(n<1){ |
| return Math.pow(2,10*(n-1))/2; |
| } |
| --n; |
| return (-1*Math.pow(2,-10*n)+2)/2; |
| },circIn:function(n){ |
| return -1*(Math.sqrt(1-Math.pow(n,2))-1); |
| },circOut:function(n){ |
| n=n-1; |
| return Math.sqrt(1-Math.pow(n,2)); |
| },circInOut:function(n){ |
| n=n*2; |
| if(n<1){ |
| return -1/2*(Math.sqrt(1-Math.pow(n,2))-1); |
| } |
| n-=2; |
| return 1/2*(Math.sqrt(1-Math.pow(n,2))+1); |
| },backIn:function(n){ |
| var s=1.70158; |
| return Math.pow(n,2)*((s+1)*n-s); |
| },backOut:function(n){ |
| n=n-1; |
| var s=1.70158; |
| return Math.pow(n,2)*((s+1)*n+s)+1; |
| },backInOut:function(n){ |
| var s=1.70158*1.525; |
| n=n*2; |
| if(n<1){ |
| return (Math.pow(n,2)*((s+1)*n-s))/2; |
| } |
| n-=2; |
| return (Math.pow(n,2)*((s+1)*n+s)+2)/2; |
| },elasticIn:function(n){ |
| if(n==0||n==1){ |
| return n; |
| } |
| var p=0.3; |
| var s=p/4; |
| n=n-1; |
| return -1*Math.pow(2,10*n)*Math.sin((n-s)*(2*Math.PI)/p); |
| },elasticOut:function(n){ |
| if(n==0||n==1){ |
| return n; |
| } |
| var p=0.3; |
| var s=p/4; |
| return Math.pow(2,-10*n)*Math.sin((n-s)*(2*Math.PI)/p)+1; |
| },elasticInOut:function(n){ |
| if(n==0){ |
| return 0; |
| } |
| n=n*2; |
| if(n==2){ |
| return 1; |
| } |
| var p=0.3*1.5; |
| var s=p/4; |
| if(n<1){ |
| n-=1; |
| return -0.5*(Math.pow(2,10*n)*Math.sin((n-s)*(2*Math.PI)/p)); |
| } |
| n-=1; |
| return 0.5*(Math.pow(2,-10*n)*Math.sin((n-s)*(2*Math.PI)/p))+1; |
| },bounceIn:function(n){ |
| return (1-dojo.fx.easing.bounceOut(1-n)); |
| },bounceOut:function(n){ |
| var s=7.5625; |
| var p=2.75; |
| var l; |
| if(n<(1/p)){ |
| l=s*Math.pow(n,2); |
| }else{ |
| if(n<(2/p)){ |
| n-=(1.5/p); |
| l=s*Math.pow(n,2)+0.75; |
| }else{ |
| if(n<(2.5/p)){ |
| n-=(2.25/p); |
| l=s*Math.pow(n,2)+0.9375; |
| }else{ |
| n-=(2.625/p); |
| l=s*Math.pow(n,2)+0.984375; |
| } |
| } |
| } |
| return l; |
| },bounceInOut:function(n){ |
| if(n<0.5){ |
| return dojo.fx.easing.bounceIn(n*2)/2; |
| } |
| return (dojo.fx.easing.bounceOut(n*2-1)/2)+0.5; |
| }}; |
| } |