问答详情
源自:4-4 任意属性值(二)

提示我TypeError: obj is undefined错误

今天按照老师讲的代码敲的时候遇到了一个问题,请大神们帮忙解答一下,谢谢各位

window.onload = function(){

var Li1 = document.getElementById('li1');

var Li2 = document.getElementById('li2');

Li1.onmouseover = function(){

startMove(this,'opacity',100);

}

Li1.onmouseout = function(){

startMove(this,'opacity',30);

}

}

function getStyle(obj,attr){

if(obj.currentStyle){

return obj.currentStyle[attr];

}

else{

return getComputedStyle(obj,false)[attr];

}

}

var alpha = 30;

function startMove(obj,attr,iTarget){

clearInterval(obj.timer);

obj.timer = setInterval(function(){

var icur = 0;

if(attr == 'opacity'){

icur = parseFloat(getStyle(obj.attr))*100;

}

else{

icur = parseInt(getStyle(obj,attr));

}

var speed = (iTarget - icur)/8;

speed = speed > 0?Math.ceil(speed):Math.floor(speed);

if(icur == iTarget){

clearInterval(obj.timer);

}

else{

if(attr == 'opacity'){

obj.style.filter = 'alpha(opacity:'+(icur + speed)+')';

obj.style.opacity = (icur + speed)/100;

}

else{

obj.style[attr] = icur + speed +'px';

}

}

},30);

}

http://img.mukewang.com/5811c73c0001579614070074.jpg

提问者:Abreto 2016-10-27 17:23

个回答

  • JettZed
    2016-10-27 22:18:28
    已采纳

    startMove方法 里面的parseFolat里面的getStyle里面的“,”写错了,你写成了“.”

  • 笛子
    2016-10-27 22:28:06

    同学,你看看第28行给getStyle传的参数对不对啊。我把你上面的代码粘下来,你自己再好好看看。

    if(attr == 'opacity'){			
        icur = parseFloat(getStyle(obj.attr))*100;
    }