2012-10-03 99 views
0

这里是我的动画的jsfiddle:http://jsfiddle.net/cCAPk/轻微修改我的jQuery动画

如果你看它,你可以看到,当DIV回到他原来的位置,黑色方块是空的一对夫妇的秒。我不希望发生这种情况。如果添加溢出:隐藏在CSS中,您可以清楚地看到div结束的位置以及重新开始的位置。

我该如何解决这个问题?

同时,我不认为我有当动画重新开始计算的最好方式..

任何帮助吗?

这里的JS:

function loop2() { 
    var lenght = $('#digit8').html().replace(/[^0-9]/gi, "").length; 
    var top = $('#digit8').css("top"); 
    var max = "-" + (lenght -1) * 45 + "px"; 

    $('#digit8').animate({ 
     top: "-=45" 
    }, 300, function() { 

    if(top == max){ 
     $('#digit8').css("top","45px");  
    } 
}); 
} 

for (i=0; i<5; i++) 
{ 
    var number = Math.floor(Math.random()*9);    
    $("#digit8").append(number+" "); 
} 

setInterval("loop2()",600);​ 

回答

0

这就是我想出了:http://jsfiddle.net/cCAPk/2/

我改变发电机产生的不是文字,以便更容易地取出元素。循环将包装45px向上移动并在回调中移除第一个元素并将其放在最后(将包装重新移至45px以进行计算)。

一个不太DOM操作密集的解决办法是不使用的回调:http://jsfiddle.net/cCAPk/3/

这有一个问题,我试图解决与第一溶液:最后一个和第一个元素的动画是不一样的其他人(在将div移回时无法看到最后一个元素)。

+0

谢谢你,第一个解决方案是完美的! – Lelly