我们一听到这个名字,就知道这个框架的效果基本上已经实现了,实际上,以前的运动框架仍然是有限的,也就是说,你不能让一些价值观一块一块地移动。

那么如何解决这个问题呢让我们看看前一个运动框架。




功能getstyle(obj,name){
如果(obj。currentstyle){
返回的对象。currentstyle {姓名};
{ { { }
返回getcomputedstyle(obj,null){姓名};
}
}


功能startmove(obj,属性、指标){
ClearInterval(obj。时间);
obj.time = setInterval(){()函数(
var = 0;

如果(attr = = 'opacity){
电流= math.round(parseFloat(getstyle(obj,ATTR))* 100);
{ { { }
电流= parseInt(getstyle(obj,ATTR));
}

速度=(指标- CUR) / 6;

速度=速度> 0 math.ceil(速度):Math.floor(速度);

如果(我= = ITarget){
ClearInterval(obj。时间);
{人}
如果(attr = = 'opacity){
obj.style.filter = 'alpha(透明度= +我+速度+ ')';
obj.style.opacity =(CUR +速度) / 100;
{人}
obj。风格{属性} =电流+速度+ 'px;
}
}
},30);
}


如何修改其实很简单。在过去的框架中,一次只能传递一种样式和一个值,现在将它们转换为JSON对象,我相信您会理解的。

我们打电话的时间是startmove(odiv,{宽度:200,高度:200 });如果需要,添加一个回调函数。所以让我们看看如何修改代码。


功能startmove(obj,JSON,fnend)
{
var max=18;
每一个调用只有一个计时器(工作时启动的计时器已经关闭)
和打开或关闭的对象是计时器,计时器和页面上的其他冲突已经被阻止,使每个计时器不互相干扰。
ClearInterval(obj。定时器);
obj。定时器= setInterval(){()函数(

VaR bstop = true; / /假设所有的值是

对于(JSON中的var名称)
{
VaR指标= JSON {名称}; / /目标

/ /治疗的透明度,不能使用parseInt和0。

如果(name = = 'opacity)
{

将有000000 7 / / * 100的误差,所以使用math.round()将四至五家
无功电流= math.round(parseFloat(getstyle(obj,名称))* 100);
}
其他的
{
无功电流= parseInt(getstyle(obj,名称)); / /当前移动值电流
}

速度=(指标CUR) / 5 / / 5;慢的小动态数量的运动速度:自定义数字

速度=速度> 0math.ceil(速度):Math.floor(速度);

如果(Math.abs(速度)>最大)速度=速度> 0max:-马克斯;

如果(name = = 'opacity)
{
obj。风格。过滤器= 'alpha(透明度:+(CUR +速度)+ / / IE);
obj。风格。不透明度(CUR +速度) / / / FF 100;铬
}
其他的
{
{姓名} = obj。风格CUR +速度+ 'px;
}

值不等于目标点。
如果(当前)!=指标)
{
bstop = false;
}
}

达到目标点
如果(bstop)
{
ClearInterval(obj。定时器);

如果(fnend) / /必须通过调用函数
{
FnEnd();
}
}
},20);
}


为什么有一个bstop假说

事实上,如果我打电话给startmove(odiv,{宽度:101,高度:200 })这样,如果宽度是101,运动尚未完成,但我们可能会关闭当前定时器。运动结束后,将有缺陷的一种特殊情况。解释:

事实上,它需要所有的动作来关闭计时器,反之,如果它不关闭,它就关闭了。程序上是定义一个布尔值,首先是真的,假设

所有的价值观都来了,如果一个人的价值并不等于目标点,bstop是假的。在周期结束时,所有的动作都是bstop表明完成实现,和定时器是封闭在这个时候。

那么运动框架已完成,不适用于CSS2和CSS3。

总结:

运动框架的演化

startmove(指标)的运动框架

startmove(目标、指标)的多个对象

startmove(对象,属性、指标)的任意值

startmove(对象,属性,指标,FN)链运动

startmove(obj,JSON,FN)完美的乐章

o(一_ U)谢谢你。