function css(obj, attr){
if(obj.currentStyle){
return obj.currentStyle[attr];
} else {
return getComputedStyle(obj, false)[attr];
}
}
function startMove(obj, json, iSpeed, fn){
clearInterval(obj.iTimer);
var iCur = 0;
obj.iTimer = setInterval(function(){
var iBtn = true;
for(var attr in json){
var iTarget = json[attr];
if(attr == 'opacity'){
iCur = Math.round(css(obj, 'opacity') * 100);
} else {
iCur = parseInt(css(obj, attr));
}
if(iCur != iTarget){
iBtn = false;
if(attr == 'opacity'){
obj.style.opacity = (iCur + iSpeed) / 100;
obj.style.filter = 'alpha(opacity=' + (iCur + iSpeed) + ')';
} else {
obj.style[attr] = iCur + iSpeed + 'px';
}
}
}
if(iBtn){
clearInterval(obj.iTimer);
fn && fn.call(obj);
}
}, 30);
}