为什么回调函数(第二个动画回调)作为循环执行导致图像继续向左移动?

时间:2012-12-18 18:24:46

标签: jquery

我的图像是水平绝对定位的,并且应该在每个间隔后向右移动。

当第一张图像到达最后一张图像时,它们应该返回到开始位置。

我的代码执行此操作,但它会继续将图像移动到数千px 之后他们又开始向右移动了。

为什么?

$(document).ready(function() {
    //alert("Ok");
    var w = 0;
    $('ul>li').each(function(i, o) {
        $(this).css({
            "position": "absolute",
            "left": 5 + w + 'px'
        })`enter code here`
        w = w + 210;
    });

    var lastPos = parseInt($("ul>li:last").css("left"));
    //alert(lastPos);
    var I = 0;
    setInterval(function() {
        I = parseInt($("ul>li:first-child").css("left"));
        //$("#i1").text(I);
        $("ul>li").animate({
            left: "+=210px"
        }, 500, function() {
            I = parseInt($("ul>li:first-child").css("left"));
            $("#i2").text(I);
            $("#i4").text(I > lastPos)
            if (I > lastPos) { //here comes the problem
                $("ul>li").animate({
                    left: "-=" + lastPos
                }, 500, function() {
                    I = parseInt($("ul>li:first-child").css("left"));
                    $("#i3").text(I);
                });
            }
        });
    }, 4000);
})

0 个答案:

没有答案