SOURCE

function move(ele,json,callBack){
	clearInterval(ele.timer);
	ele.timer = setInterval(function(){
		var isTrue = true;
		for(var attr in json){
			var current = 0;
			if(attr == 'opacity'){
				if(Math.round(parseFloat(css(ele,attr))*100) == 0){
					current = Math.round(parseFloat(css(ele,attr))*100);
				}
				else{
					current = Math.round(parseFloat(css(ele,attr))*100) || 100;
				}	
			}
			else{
				current = parseInt(css(ele,attr)) || 0;
			}
			var speed = (json[attr] - current)/20;
			speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
			if(current != json[attr]){
				isTrue = false;
			}
			if(attr == 'opacity'){
				ele.style.filter = 'alpha(opacity=' +(current + speed)+ ')';
				ele.style.opacity = (current + speed)/100;
			}
			else{
				ele.style[attr] = current + speed + 'px';
			}
		}
		if(isTrue){
			clearInterval(ele.timer);
			if(callBack){
				callBack.call(ele);
			}
		}
	},30);
}

function css(ele,attr){
	if(ele.currentStyle){
		return ele.currentStyle[attr];
	}
	else{
		return getComputedStyle(ele,false)[attr];
	}
}
console 命令行工具 X clear

                    
>
console