JS完美运动框架【利用了Json】

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>完美运动框架</title>
<style>
body,ul,li{
	margin:0;
	padding:0;
}
ul,li{
	list-style:none;
}
ul li{
	200px;
	height:100px;
	background:yellow;	
	margin-bottom:20px;
	border:4px solid #000;
	filter:alpha(opacity:30);
	opacity:0.3;
}
</style>
<script src="move.js"></script>
<script>
window.onload = function(){
	var oLi = document.getElementById('li1');
	oLi.onmouseover = function(){
		startMove(oLi,{400,height:200,opacity:100});
	}
	oLi.onmouseout = function(){
		startMove(oLi,{200,height:100,opacity:30});
	}
}
</script>

</head>
<body>
<ul>
	<li id = "li1">我是什么颜色</li>
</ul>
</body>
</html>


move.js

 function getStyle(obj, attr)
{
	if(obj.currentStyle)
	{
		return obj.currentStyle[attr];
	}
	else
	{
		return getComputedStyle(obj, false)[attr];
	}
}

function startMove(obj, json, fn)
{
	clearInterval(obj.timer);
	obj.timer=setInterval(function (){
	flag=true;//定义标杆,假设所有运动都到达目标值 
	for(var attr in json)
	{
		//1.取当前的值
		var iCur=0;

		if(attr=='opacity')
		{
			iCur=parseInt(parseFloat(getStyle(obj, attr))*100);
		}
		else
		{
			iCur=parseInt(getStyle(obj, attr));
		}
	
		//2.算速度
		var iSpeed=(json[attr]-iCur)/8;

		iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
		//3.检测停止
		if(iCur!=json[attr])
		{
			flag=false;
		}
		if(attr=='opacity')
		{
			obj.style.filter='alpha(opacity:'+(iCur+iSpeed)+')';
			obj.style.opacity=(iCur+iSpeed)/100;
		}
		else
		{
			obj.style[attr]=iCur+iSpeed+'px';
		}
	}   
		    if(flag)
		    {
		   		clearInterval(obj.timer);
			    if(fn)
			    {
			    	fn();
			    }
		    }
	}, 30)
}



原文地址:https://www.cnblogs.com/yongbin668/p/5592786.html