2010-07-23 59 views
1

我希望基本上滑動所有的列表並將其添加到頂部,並將追加到底部,這將是即將發生的事件的輪換。已將列表向上滑動並將第一個項目追加到列表末尾

這就是我到目前爲止。它將第一個幻燈片放在第一個幻燈片上,並將其附加到ul的末尾,但是它只是每隔1000毫秒將同一個li附加到ul。

爲什麼它不停地滑動第一個?我假設我必須以某種方式使用實時功能?

$(document).ready(function() { 

    function scroll() { 
     $('#events ol li:first').slideUp(); 

     $('#events ol li:last').appendTo($('#events ol')); 
    } 


    setInterval(scroll, 1000); 
}); 

回答

4

您需要稍微更換一下,以便在滑動後自行添加,如下所示:

$(function() { 
    function scroll() { 
    $('#events ol li:first').slideUp(function() { 
     $(this).show().parent().append(this); 
    }); 
    } 
    setInterval(scroll, 1000); 
}); 

You can see it in a demo here。我們正在做的是在.slideUp()完成之後,回調運行,它接受元素,顯示它(因爲它隱藏在.slideUp()的末尾),並將它自己的.append()作爲它的父對象......將它移動到結束。

+0

有沒有像'slideUp()'_reveals_元素而不是隱藏它?如果是這樣,你能否克隆「LI」,並將其滑入並在頂部消失,同時滑入並同時出現在底部?我認爲這會產生更好的「滾動」效果,但我不知道使用jQuery可以輕鬆實現。 – 2010-07-23 01:55:24

+1

@Lèse - 這是你在追求什麼? http://jsfiddle.net/nick_craver/g6uMF/2/ – 2010-07-23 02:01:48

+0

這正是我所尋找的;我沒有意識到'slideDown()'就是這樣工作的。但是現在我已經看過文檔了。謝謝。 – 2010-07-23 02:10:17

2

一個錯誤我看到的,是你的附加最後li,追加的最後一個項目不會有什麼區別,因爲它已經是最後一個項目...

demo

$(document).ready(function() { 

    function scroll() { 
     $('#events ol li:first-child').slideUp(function(){ 
     $(this).appendTo($('#events ol')).show(); 
     });  
    } 

    setInterval(scroll, 1000);​ 
}); 
相關問題