问答详情
源自:6-1 动画函数

这个判断把我搞晕了

function animate (offset) {    
if (offset == 0) {    
    return;    
}    
animated = true;    
var time = 300;    
var inteval = 10;    
var speed = offset/(time/inteval);    
var left = parseInt(list.style.left) + offset;     
var go = function (){    
    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, inteval);    
    }else {    
        list.style.left = left + 'px';    
        if(left>-200){    
            list.style.left = -600 * len + 'px';    
        }    
        if(left<(-600 * len)) {    
        list.style.left = '-600px';    
        }       
    }    
}    
go();}

这是这节课下载来的代码,我怎么觉得if里的(speed > 0 && parseInt(list.style.left) < left) || (speed < 0 && parseInt(list.style.left) > left) 一直都是成立的怎么else跳出去的?

图片在第一个时parseInt(list.style.left)=-600,向左移animate(600); parseInt(list.style.left)<left = 0;满足条件,

图片在最后一个时parseInt(list.style.left)=-3000,向右animate(-600);parseInt(list.style.left)> left = -3600;也满足条件 ,什么情况下跳出这个判断条件?

提问者:啊啊啊啊123 2017-05-15 14:04

个回答

  • Dnove
    2017-05-15 18:06:02
    已采纳

    等于left,也就是图片到达指定位置的时候跳出。

  • 慕斯卡8256735
    2017-07-01 18:09:06

    同感,为了搞清楚这个问题,看了这段视频不下五次,最后才想明白的