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

求教透明度里没定义timer的问题

<!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>

*{margin:0;padding:0;

}

ul,li{

list-style:none;

}

ul li{

width:200px;

height:100px;

background:yellow;

margin-bottom:20px

}

</style>

<script>

window.onload=function(){

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

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

  onLi[i].timer=null;

  onLi[i].onmouseover=function(){

  startmove(this,400);

  }

  onLi[i].onmouseout=function(){

  startmove(this,200);

  }

  }

}

function startmove(obj,iTarget){

clearInterval(obj.timer);

obj.timer=setInterval(function(){

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

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

if(obj.offsetWidth==iTarget){

clearInterval(obj.timer);

}else{

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

}

},30)

}

</script>

</head>

<body>

<ul>

<li></li>

<li></li>

<li></li>

</ul>

</body>

</html>

不是说每次在执行功能函数startmove()前都要用timer=null;清除吗? 但是老师在讲的时候没有添加也照常运行,是可以不用写还是忘了写。。。

提问者:浪里白嫖张顺 2017-07-12 11:40

个回答

  • 慕移动9181930
    2022-03-25 23:25:59

    老师有问题啊那个首页尽然居中了~~IDtxtclassname,classname.

  • 慕斯6506489
    2017-08-02 21:22:22

    按你的理解来说在onLi[i].timer=null已经清除了,所以timer=null实际上加不加都可以

    而我觉得timer=null是不需要的,因为这里根本不需要清零

  • 我爱小小小橘子
    2017-07-12 23:21:25

    <script>

    window.onload=function(){

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

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

      onLi[i].timer=null;

      onLi[i].onmouseover=function(){

      startmove(this,400);

      }

      onLi[i].onmouseout=function(){

      startmove(this,200);


    在前面是有这句的。我加了下划线,你看下