为了账号安全,请及时绑定邮箱和手机立即绑定

多物体链式运动,变形可以,透明度变不了

//经过测试发现getStyle(obj,'opactiy')是没有的,所以后面的都错了,但不知道哪里出错了。。。

window.onload = function(){
	var aLi = document.getElementsByTagName('li');
	for(var i=0; i < aLi.length; i++)
	{
		aLi[i].timer = null;
		aLi[i].onmouseover = function(){
			var _this = this;
			startMove(_this,'width',400,function(){
				startMove(_this,'height',400,function(){
					startMove(_this,'opactiy',100);//前面都可以,就这个改变不了
					});
				});
			}
		aLi[i].onmouseout = function(){
			var _this = this;
	//这里若加上变透明度的直接全部运行都恢复不了
				startMove(_this,'height',100,function(){
					startMove(_this,'width',200);
					});
				
			}
	}
}

function startMove(obj,attri,iTarget,fn)
{
	clearInterval(obj.timer);
	obj.timer=setInterval(function()
	{
		var ic=0;
			  if (attri == 'opactiy')
			  {
			     ic=Math.round(parseFloat(getStyle(obj,attri))*100)
			  }
			  else
			  {
	             ic=parseInt(getStyle(obj,attri));
			  }
			var speed=(iTarget-ic)/8;
			speed=speed>0?Math.ceil(speed):Math.floor(speed);
			if (ic==iTarget){
				clearInterval(obj.timer);
				if (fn){
					fn();
				}
			}
			else
			{
				if(attri=='opacity')
				{
					obj.style.opacity = (ic+speed)/100;
					obj.style.filter='alpha(opacity:'+ic+speed+')';
				}	 
				else{
				obj.style[attri]=ic+speed+'px';
				}
			 }
	},30)
}
//获取函数
function getStyle(obj,attri){
	if(obj.currentStyle){
		return obj.currentStyle[attri];//针对ie浏览器
	}
	else{
	    return getComputedStyle(obj,false)[attri];//针对firefox浏览器
	}
}	


正在回答

1 回答

第三个的opacity写错了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

多物体链式运动,变形可以,透明度变不了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信