javascript动画算法实例分析

javascript动画算法实例分析
本文介绍了javascript动画算法,分享给大家,供大家参考

动画算法

直线:没有慢动作(匀速运动);

平方:两个正方形的慢运动;

立方:三方的慢运动

四次方:四方的慢运动;

Quintic:这五平方的慢动作;

Sinusoidal:正弦曲线的慢运动;

指数曲线的慢运动;

圆:圆曲线的慢运动;

弹性:指数衰减的正弦慢运动;

返回:三平方移动超出范围;

反弹:指数衰减缓慢反弹。

每种效应被分为三种方法(方法),它们是:

酪蛋白:从0加速运动;

easeout:减速到0的运动;

easeinout:上半年加速0,而下半年减速至0。

函数的四个参数表示如下:

当前时间(当前时间);

b开始值(初始值);

价值的变化(变化);

持续时间(持续时间)

操作的结果是当前的动作。

tween.js如下:
吐温= {
线性函数(t,b,c,d){返回,
{四:
酪蛋白:功能(T,B,C,D){
返回C *(t = );
},
easeout:功能(T,B,C,D){
返回C *(T / = D)*(T-2)+ B;
},
easeinout:功能(T,B,C,D){
如果((1)< 2)返回2;
返回C / 2 *((t)×(T-2)- 1)+ B;
}
},
{立方:
酪蛋白:功能(T,B,C,D){
返回C *(t = );
},
easeout:功能(T,B,C,D){
返回C *((T = T / D-1)* T * T + 1)+ B;
},
easeinout:功能(T,B,C,D){
如果(({ d = 2)< 1)返回C 2;
返回C 2 *((t = 2)* T + T + 2)+ b;
}
},
{夸脱:
酪蛋白:功能(T,B,C,D){
返回C *(t = );
},
easeout:功能(T,B,C,D){
返回C *((T = T / D-1)* T * T * T - 1)+ B;
},
easeinout:功能(T,B,C,D){
如果(({ d = 2)< 1)返回C 2;
返回2(* = 2)* T * T - T 2)b;
}
},
{ Quint:
酪蛋白:功能(T,B,C,D){
返回C *(t = );
},
easeout:功能(T,B,C,D){
返回C *((T = T / D-1)* T * T * T * T + 1)+ B;
},
easeinout:功能(T,B,C,D){
如果(({ d = 2)< 1)返回C 2;
返回C 2 *((t = 2)* T * T * T + T 2)+ B;
}
},
{ Sine:
酪蛋白:功能(T,B,C,D){
返回C * math.cos(t / d(数学。π/ 2))+ C + B;
},
easeout:功能(T,B,C,D){
返回C * Math.sin(T/D *(数学。π/ 2))+ B;
},
easeinout:功能(T,B,C,D){
返回C / 2 *(math.cos(数学。PI * T/D)- 1)+ B;
}
},
{世博会:
酪蛋白:功能(T,B,C,D){
返回(T = = 0)B:math.pow C *(2, 10 *(T/D - 1))+ B;
},
easeout:功能(T,B,C,D){
返回(T = = D)B + C:C(-math.pow(2,- 10 * T/D)+ 1)+ B;
},
easeinout:功能(T,B,C,D){
如果(t=0)返回b;
如果(返回),返回;
如果((T / = D / 2)<1)返回C / 2 *(2, 10 * Math.pow(T 1))+ B;
返回C / 2 *(-math.pow(2,- 10 * - T)+ 2)+ B;
}
},
{中国保监会:
酪蛋白:功能(T,B,C,D){
返回C *(math.sqrt(1 -((T / = D)* T)- 1)+ B;
},
easeout:功能(T,B,C,D){
返回math.sqrt C *(1 -((T = T / D-1)* T)+ B;
},
easeinout:功能(T,B,C,D){
如果((T / = D / 2)<1)返回C / 2 *(math.sqrt(1 T T)- 1)+ B;
返回C / 2 *(math.sqrt(1 -((t = 2)* T)+ 1)+ B;
}
},
{弹性:
酪蛋白:功能(T,B,C,D,A,P){
如果(t=0)返回b;如果(((t = =)= 1)返回b + C;如果(!p=d×3;
如果(一| |!< math.abs(C)){ = C;var = P / 4;}
其他变量S = P /(2×数学。PI)* Math.asin(C / A);
返回(* Math.pow(10×(t = 1))* Math.sin((T * D-S)*(2 *数学。PI)/ P))+ B;
},
easeout:功能(T,B,C,D,A,P){
如果(t=0)返回b;如果(((t = =)= 1)返回b + C;如果(!p=d×3;
如果(一| |!< math.abs(C)){ = C;var = P / 4;}
其他变量S = P /(2×数学。PI)* Math.asin(C / A);
返回(* Math.pow(2,- 10 * T)* Math.sin((T * D-S)*(2 *数学。PI)/ P)+ C + B);
},
easeinout:功能(T,B,C,D,A,P){
如果(t=0)返回b;如果(((= 2)= 2)返回b + C;如果(!p)p=d *;
如果(一| |!< math.abs(C)){ = C;var = P / 4;}
其他变量S = P /(2×数学。PI)* Math.asin(C / A);
如果(t<1)返回。5 *(* Math.pow(10×(t = 1))* Math.sin((T * D-S)*(2 *数学。PI)/ P))+ B;
返回一个* Math.pow(2,- 10 *(t = 1))* Math.sin((T * D-S)*(2 *数学。PI)/ P)* 5 + C + B;
}
},
{回来:
酪蛋白:功能(T,B,C,D,S){
如果(=未定义)s=1.70158;
返回C *(t=)* *((s + 1)* s)+ b;
},
easeout:功能(T,B,C,D,S){
如果(=未定义)s=1.70158;
返回C *((T = T / T D-1)* *((+ 1)* T + S)+ 1)+ B;
},
easeinout:功能(T,B,C,D,S){
如果(=未定义)s=1.70158;
如果((T / = D / 2)<1)返回C / 2 * ((((((((( * =(1.525))+ 1)* T S)+ B;
返回C / 2 *((t = 2)*不* (((((((((( * =(1.525))+ 1)* T + S)+ 2)+ B;
}
},
{反弹:
酪蛋白:功能(T,B,C,D){
返回C - Tween.Bounce.easeOut(DT,0,C,D)+ B;
},
easeout:功能(T,B,C,D){
如果((t = )< <(1 2.75)){
返回C *(7.5625 * t * T)+ B;
}如果(< <(2 2.75)){
返回C *(7.5625 *(t =(1.5 2.75))* 75)+ B;
}如果(< <(2.5 2.75)){
返回C *(7.5625 *(t =(2.25 2.75))* 9375)+ B;
{人}
返回C *(7.5625 *(t =(2.625 2.75))* 984375)+ B;
}
},
easeinout:功能(T,B,C,D){
如果(t<D / 2)返回Tween.Bounce.easeIn(T×2, 0,C,D)* 5 + B;
否则返回tween.bounce.easeout(T *二维,0,C,D)* 5 * 5 + B + C;
}
}
}

希望本文能对大家的javascript程序设计有所帮助。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部