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"; } } }
其实这一大串判断
if ((speed<0&&parseInt(list.style.left)>newLeft) ||speed>0&&parseInt(list.style.left)<newLeft)
判断内容太过于复杂,内容总结起来其实就是判断当前的图片是不是没有移动到目标位置,完全可以替换为
if(parseInt(list.style.left) != newLeft)
这样既简洁又直观清晰
speed<0&&parseInt(list.style.left)>newLeft
位移量为负值时,当前left值大于点击后的值,进入动画
speed>0&&parseInt(list.style.left)<newLeft
位移量为正值时,当前left值小于点击后的值,进入动画
如果当前left等于点击后的left 就不进入动画
其实好像不用判断speed