//功能:能实现元素的各种动画基本操作
//input:OBJ,json,函数fn
//var timer=null;
//startMove(obj,{attr1:target1,attr2:target2},fn)
function startMove(obj,json,fn) //传入参数Obj、要改变的属性、目标
{
clearInterval(obj.timer); //清空该Obj的计时器
var speed=0;
obj.timer=setInterval
(
function()
{
var flag=true; //每次默认true,假设运动到达最终值
for(var attr in json)
{
//改变属性
if(attr=="opacity")
{
var now_attr=parseFloat(getStyle(obj,attr));
speed=(json[attr]-now_attr)*10;
speed=speed>0?Math.ceil(speed):Math.floor(speed);
speed=speed/100;
}
else
{
var now_attr=parseInt(getStyle(obj,attr));
speed=(json[attr]-now_attr)/8;
speed=speed>0?Math.ceil(speed):Math.floor(speed);
}
//如果有一个值没到达终点,flag设为false
if(now_attr!=json[attr])
{
flag=false;
}
if(attr=="opacity")
{
obj.style[attr]=parseFloat(getStyle(obj,attr))+speed;
}
else
{
obj.style[attr]=parseInt(getStyle(obj,attr))+speed+"px";
}
}
if(flag)
{
clearInterval(obj.timer);
if(fn)fn();
}
},30
)
}
function getStyle(obj,attr)
{
if(obj.currentStyle) //IE浏览器执行
{
return obj.currentStyle[attr];
}
else
{
return getComputedStyle(obj,false)[attr];
}
}