0

我在屏幕上有一堆不断滚动的对象,每个对象都分配了一个数字。当您按下其中一个数字时,它会离开屏幕最左边,因此可以重新滚动。当我尝试使用偏移量重新分配元素的位置时,它只会消失一秒钟,然后继续滚动到原来的位置。我认为这是因为 animate() 在我尝试更改它时仍在进行,因此它会更改一秒钟,然后 animate 将其恢复到原来的位置。当动画处于完全不同的功能中时,如何覆盖它?

这是我尝试手动分配的地方:

$(document).ready(function(){
    $(document).keyup(function(e){
        if(e.which == 48){
            $('#foo').offset({top:8, left:-600});
        }
    });
});

这是动画功能:

$(document).ready(function(){
    setInterval(function(){
        $('#foo').animate({
            left : "+=10"
        },{ duration: 200, queue: false });
    },200);
}
4

1 回答 1

1

动画正在脱离它最后使用的东西。如果您设置像 Rooster 提到的全局变量,您应该可以使用它。尝试这样的事情。如果这不起作用,请制作一个 Fiddle,然后我可以直接玩它

$(document).ready(function(){
    var leftPos = $('#foo').postion().left;
    $(document).keyup(function(e){
        if(e.which == 48){
            leftPos = -600;
            $('#foo').offset({top:8, left:leftPos});
        }
    });
    setInterval(function(){
        leftPos +=10;
        $('#foo').animate({
            left : leftPos
        },{ duration: 200, queue: false });
    },200);
});
于 2013-11-13T18:17:03.300 回答