2016-12-30 31 views
-2

我有這樣的新名單:如何讓菜單每5秒滾動一次?

<ul> 
    <li><a>new1</a></li> 
    <li><a>new2</a></li> 
    <li><a>new3</a></li> 
</ul> 

我想ul只顯示一個新的,然後是新會向上移動並消失。在接下來的5秒內,又一次新的舉動消失了。當最後一個消失時,第一個會再次發生。 我不知道如何使用jquery/javascript進行設置。

+6

查閱以下JS方法:document.createElement(),.appendChild(),window.setInterval()和document.getElementById()和.remove() – Orangesandlemons

+0

非常感謝。我會嘗試。新年快樂^^。 – Hanata

回答

1

可能是你可以試試這個:

HTML:

<ul id="marquee"> 
<li><a>new1</a></li> 
    <li><a>new2</a></li> 
    <li><a>new3</a></li> 
</ul> 

jQuery的

window.setInterval(function() { 
    var updated = $("#marquee li:first-child"); 
    $.unique(updated).each(function(i) { 
     $(this).slideUp(function() { 
     $(this).appendTo(this.parentNode).slideDown(); 
     }); 
    }); 
}, 5000); 

演示:http://jsfiddle.net/mSmbv/1254/

+0

不錯。這正是我試圖用JQuery所做的。但是我只會讓用戶看到一個新的回合。 – Hanata

1

您還可以使用jQuery來實現這一點,請查找以下fiddle

<div id="container"> 
</div> 

<button onclick="start()"> 
    Start/Stop 
</button> 


var i = 0, 
    id = null; 

function start() { 
    if (id == null) { 
    id = setInterval(prepareDom, 5000) 

    function prepareDom() { 
     jQuery("<ul><li>" + (i++) + "</li><li>" + (i++) + "</li></ul>").appendTo("#container"); 
    } 
    } else { 
    window.clearInterval(id); 
    id = null; 
    } 
}