问答详情
源自:6-2 完美运动框架

麻烦大家帮忙看看为什么总是报错 Uncaught ReferenceError: attr is not defined

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>无标题文档</title>

<style type="text/css">

*{padding:0;margin:0}

div{width:200px;

      height:80px;

 background:#FF3;

/*filter:alpha(opacity:30);*/

 opacity:0.3;

 margin:20px 0;

 

}

</style>

<script type="text/javascript">

window.onload=function(){

var div1 = document.getElementById('div1');

var div2 = document.getElementById('div2');

div1.onmouseover=function(){

startMove(div1,{width:400,height:160})

}

div1.onmouseout=function(){

  startMove(div1,{width:200,height:80})

}

}

/*var exm =document.getElementsByTagName('div');

for(var i=0;i<exm.length;i++)

{

  exm[i].timer=null;

  exm[i].onmouseover=function(){

 startMove(this,'width',400);}

  exm[i].onmouseout=function(){

 startMove(this,'width',200);}

}

}*/

function getStyle(obj,attr){

if(obj.currentStyle){

return obj.currentStyle[attr];}

else

{return getComputedStyle(obj,false)[attr];} 

}

  function startMove(obj,json){

 clearInterval(obj.timer);

 var iCur=parseInt(getStyle(obj,attr));

 obj.timer=setInterval(function(){

  for(var attr in json){

 var speed=0;

 if(json[attr]>iCur)

 {speed=Math.ceil((json[attr]-iCur)/8);}

 else if(json[attr]<iCur)

 {speed=Math.floor((json[attr]-iCur)/8);}

      if(iCur==json[attr])

 {clearInterval(obj.timer);}

 else

{obj.style[attr]=iCur+speed+'px';}

}

},30)

}

</script>


</head>


<body>

<div id="div1">

</div>

<div id="div2">

</div>

<div id="div3">

</div>

</body>

</html>


提问者:和光 2016-03-30 15:24

个回答

  • code16
    2016-03-31 01:25:31
    已采纳

    把  var iCur=parseInt(getStyle(obj,attr));   放在for循环里试试 

    你的attr是在for循环里定义的

  • qq_往事如风_17
    2016-03-30 16:52:42

    没有定义,肯定报错啊

  • qq_往事如风_17
    2016-03-30 16:51:40

    var iCur=parseInt(getStyle(obj,attr));的attr哪里来的