这段代码哪里错了,为什么显示的宽度没有任何变化

来源:4-3 任意属性值(一)

叶绿体线粒体

2016-08-29 11:13

目标效果:鼠标悬浮,宽度变宽,鼠标移出,宽度恢复,但是不知道代码哪里有问题,鼠标移动没有任何变化?

<!DOCTYPE html>
<html xmlns="http://">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"></meta>     
    <title>多物体运动</title>
    <link href="css/main.css" rel="stylesheet" />
    <style type="text/css">
       ul,li {
       	list-style: none;
       }
       ul li{
       	width: 200px;
       	height: 100px;
       	background: yellow;
       	margin-bottom: 20px;
        border: 2px solid red;
       }

    </style>

    <script>
    window.onload=function(){
    	var ali=document.getElementsByTagName('li');   
    	for(var i=0;i<ali.length;i++){
    		ali[i].timer=null;
    		ali[i].onmouseover=function(){      
    			startMove(this,400);           
    		}
    		ali[i].onmouseout=function(){      
    			startMove(this,200);
    		}
    	}
    }

    function startMove(obj,iTarget){            
    	clearInterval(obj.timer);  
    	obj.timer=setInterval(function(){
    		var icur=parseInt(getStyle(obj,'width'));
            var speed=(iTarget-icur)/8;
    		speed=speed>0?Math.ceil(speed):Math.floor(speed);
    		if (icur==iTarget) {
    			clearInterval(obj.timer);
    		}
    		else{
    			obj.style.width=icur+speed+'px';
    		}
    	},30)
    }

    </script>
</head>

<body>
<ul>
	<li></li>
	<li></li>
	<li></li>
</ul>
</body>
</html>


写回答 关注

1回答

  • Freestyle文
    2016-08-29 11:37:22
    已采纳

    同学  你的getStyle没有封装啊

    function getStyle(obj,attr){

    if(obj.currentStyle){

    return obj.currentStyle[attr];

    }

    else{

    return getComputedStyle(obj,false)[attr];

    }

    }


    叶绿体线粒体

    太感谢了,我还以为getStyle本来就有呢。

    2016-08-29 14:04:44

    共 1 条回复 >

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113925 学习 · 1443 问题

查看课程

相似问题