问答详情
源自:4-1 JS多物体动画

怎么我的背景没有变化呢?

<script type="text/javascript">

window.onload=function(){

var aLi=document.getElementsByTagName('li');

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

aLi[i].onmouseover=function(){

startMove(this,400);

}

aLi[i].onmouseout=function(){

startMove(this,200);

}

}

}

var timer=null;

function startMove(obj,iTarget){

clearInterval(timer);

timer=setInterval(function(){

var speed=(iTarget-obj.offsetWidth)/8;

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

if(obj.offsetWidth == iTarget){

clearInterval(timer);

}else{

obj.offsetWidth=obj.offsetWidth+speed+'px';

}

},30)

}

</script>


提问者:lacy_0001 2016-04-16 10:48

个回答

  • mingttong
    2016-04-16 17:13:29
    已采纳

    倒数第5行的

    obj.offsetWidth=obj.offsetWidth+speed+'px'; 

    改为

     obj.style.width=obj.offsetWidth+speed+'px';

    就可以了。一开始我也搞不懂为什么,百度了一下,说是

    obj.offsetWidth是数值,而obj.style.width是字符串,所以在用obj.offsetWidth+speed+'px'改变宽度时应该赋值给obj.style.width.