2011-01-28 25 views
2

私は並べ替えのティッカーを作成しており、ページが明らかに閉じられるかナビゲートされるまで実行しておく必要があります。Javascriptベースのニュースティッカーを作成

このスクリプトは、単に(これは私がこれまで持っているものである)のLiを巡回されます。

明らか
$("li").hide(); //hides all "li" onload 
var lis = $("ul").children("li").size(); //counts how many "li"s there are 
var count = 0; 
while(true) 
{ 
    count++; 
    if(count>lis) //checks if count needs to be reset 
    count = 1; 

    $("li:nth-child(" + count + ")").fadeIn('slow'); 
    setTimeout('', 4000); 
} 

ページがあるため、無限ループの負担はありません。どのように私はこれについて行く必要がありますについて誰も提案がありますか?

答えて

2
var ticker = $('ul.ticker'); 
ticker.children(':first').show().siblings().hide(); 

setInterval(function() { 
    ticker.find(':visible').fadeOut(function() { 
     $(this).appendTo(ticker); 
     ticker.children(':first').show(); 
    }); 
},2000); 

demo

+0

良い神、あなたの天才。 – nkcmr

0

setTimeoutは、毎回起動したい機能を指し、その機能にsetTimeoutを再度呼び出さなければなりません。事実上無限のポーリングですが、遅延が組み込まれています。また、フラグを設定することもできます(setTimeoutをもう一度呼び出さない)。

+0

スクリプトを無限に実行するにはどうすればよいですか? while(true)is not working – nkcmr

+0

または、次の要素を連続して呼び出すためにsetIntervalを使用できます。 – rcravens

+0

それは私が言っていることです。 setTimeoutは最初のパラメータとして関数を取ります。その機能を持っている場合は、ループの代わりに(ループではなく)ロジックを実行するだけで、setTimeoutを永久にリセットすることができます。 setInterval(rcravensが述べたように)は別の手段ですが、ほとんどの場合、関数が呼び出される前にコードが終了するかどうかを心配する必要はありません。 – Paul

0

あなたのためのすべての作業を行いjQueryプラグイン(jQuery webTicker)のような何か他のものもあります。たとえば、あなたはそれ

jQuery('#webticker').webTicker(); 

の上にソートされていないリストに

<ul id='webticker'> 
    <li>text</li> 
</ul> 

使用jqueryのを行うことができ、これは自動的に回転するスクリプトを起動しますあなたはまた、プラグインに沿って設けられているいくつかの追加のCSSが必要になります変更可能なスタイリングのためのものです。このスクリプトは、含まれており、マウスを使用して、フェードインを持っているとReigelの華麗な答えに追加するには、ダウンロードのウェブサイト

0

webticker exampleで説明したような効果をフェードアウトすることができますしながらwebtickerの上にある自動停止機能

var ticker = $('ul.ticker'); 
ticker.children(':first').show().siblings().hide(); 

setInterval(function() { 
ticker.find(':visible').fadeOut(function() { 
    $(this).appendTo(ticker); 

    // fadeIn() rather than show() here to create a continuously fading effect. 

    ticker.children(':first').fadeIn(); 
}); 
},2000); 
+0

ようこそ。 Riegelの答えにこれがどのように追加されるのか/なぜそれが必要なのかを説明するテキストを追加できますか? – gung

+0

ありがとうございました。コードでは、show()の代わりにfadeIn()を使うと、テキストが常にフェードイン/フェードアウトして滑らかに見えることを示しています。 –