为了账号安全,请及时绑定邮箱和手机立即绑定

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

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 回答

其实这一大串判断

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

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

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

这样既简洁又直观清晰

3 回复 有任何疑惑可以回复我~

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

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

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

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

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

其实好像不用判断speed

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信