function getStyle(element,attr) {
return window.getComputedStyle?window.getComputedStyle(element,null)[attr]:element.currentStyle[attr];
}
function backstyle(element,json,fn){
clearInterval(element.timeId);
element.timeId=setInterval(function () {
var flag=true;
for (var attr in json){
var current=parseInt(getStyle(element,attr));//获取当前位置
var target=json[attr]; //目标的值
var step=(target-current)/10;//前进的值
step=step>0 ? Math.ceil(step):Math.floor(step); //判断左右
current+=step;//每次移动后的距离
element.style[attr]=current+“px”;
//如果有一个当前位置不等于目标位置
if (current!=target){
flag=false;//在循环,直到不进入这个循环
}
}
//都到达了目标位置。就清楚定时器
if (flag) {
clearInterval(element,timeId);
if (fn){
fn();
}
}
},20)
}
脑壳疼之变速动画之增加任意属性与回调函数
