首页 > 代码库 > 变速动动

变速动动

function getStyle(obj,name){	return obj.currentStyle?obj.currentstyle[name]:getComputedStyle(obj,false)[name];};function move(obj,json,options){	options=options||{};	options.time=options.time||700;	options.type=options.type||‘ease-out‘;	var start={};	var dis={};	for(var name in json){		if(name==‘opacity‘){			start[name]=parseFloat(getStyle(obj,name));		}else{			start[name]=parseInt(getStyle(obj,name));		}		dis[name]=json[name]-start[name];	};	var count=Math.round(options.time/30);	var n=0;	clearInterval(obj.timer);	obj.timer=setInterval(function(){		n++;		for(var name in json){			switch(options.type){				case ‘linear‘:    //匀速					var cur=start[name]+dis[name]*n/count;				break;				case ‘ease-in‘:   //加速					var a=n/count;					var cur=start[name]+dis[name]*a*a*a;				break;				case ‘ease-out‘:     //减速					var a=1-n/count;					var cur=start[name]+dis[name]*(1-a*a*a);				break;			}		};		if(name==‘opacity‘){			obj.style.opacity=cur;			obj.style.filter=‘alpha(opacity:‘+cur*100+‘)‘;		}else{			obj.style[name]=cur+‘px‘;		};		if(n==count){			clearInterval(obj.timer);			options.fn&&options.fn();		}	})}

  

变速动动