为什么要在animate()函数中加if(offset==0)这个判断条件呢?

来源:7-1 自动播放

你这个糟老头子

2019-09-18 16:31

function animate(offset){

    animated = true;

    if(offset == 0){

    return;

    }

   

    var left = parseInt(list.style.left) + offset;

    var time = 300;  //位移总时间

    var interval = 10;  //位移间隔时间

    var speed = offset/(time/interval);  //每次位移量


    function go(){

    if((speed < 0 && parseInt(list.style.left) > left) || (speed > 0 && parseInt(list.style.left) < left)){

    list.style.left = parseInt(list.style.left) + speed + 'px';

    setTimeout(go,interval);

    }else{

    list.style.left = left + 'px';


    if(left > -600){


    list.style.left = -3000 + 'px';

    }


    if(left < -3000){


    list.style.left = -600 + 'px';

    }

    animated = false;

    }

    }

    go();

    }


写回答 关注

2回答

  • _堇年
    2019-11-10 20:04:22

    原因在这里

      var myIndex = parseInt(this.getAttribute('index'));

                        var offset = -600 * (myIndex - index);

                        animate(offset);

    假如offset =0,可以推出myIndex =index;

    当myIndex =index时,其实就是当前显示高亮的小圆点和你点击的小圆点是同一个小圆点。

    既然这样;那么在function animate(offset)函数中,就可以加个判断,当offset =0时,什么也不做,

    也就是退出该函数。


  • Rheinmetall
    2019-11-08 20:01:59

    不移动后面的代码就必要执行了

焦点图轮播特效

通过本教程学习您将能掌握非常实用的焦点图轮播特效的制作过程

65279 学习 · 611 问题

查看课程

相似问题