这处的if判断不大懂,speed正负和新left和原left值比较这一大串不就相当于偏移量存在嘛

来源:7-1 自动播放

leeforu

2018-04-26 22:39

function go(){   //变化图片动画效果
    if ((speed<0&&parseInt(list.style.left)>newLeft)
    ||speed>0&&parseInt(list.style.left)<newLeft) {
    list.style.left = parseInt(list.style.left)+speed+"px";
    setTimeout(go,interval);  //在位移时就给予动画效果
    }else {
        change = false;   //切换完毕后可继续切换
        list.style.left = newLeft + "px";
        if (newLeft > -600) {                                
        list.style.left = -3000 + "px";                            
        }                            
        if (newLeft < -3600) {                                
        list.style.left = -1200 + "px";                            
        }                        
    }                    
}


写回答 关注

2回答

  • Lzy1996
    2018-07-02 20:14:26

    其实这一大串判断

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

    判断内容太过于复杂,内容总结起来其实就是判断当前的图片是不是没有移动到目标位置,完全可以替换为

    if(parseInt(list.style.left) != newLeft)

    这样既简洁又直观清晰

  • 追啊
    2018-06-10 10:58:40

    speed<0&&parseInt(list.style.left)>newLeft

    位移量为负值时,当前left值大于点击后的值,进入动画

    speed>0&&parseInt(list.style.left)<newLeft

    位移量为正值时,当前left值小于点击后的值,进入动画

    如果当前left等于点击后的left 就不进入动画

    其实好像不用判断speed

焦点图轮播特效

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

65296 学习 · 611 问题

查看课程

相似问题