167 lines
3.1 KiB
JavaScript
167 lines
3.1 KiB
JavaScript
|
/*
|
||
|
Copyright (c) 2004-2010, 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;
|
||
|
}};
|
||
|
}
|