2

ある種のティッカーを作成していますが、ページが明らかに閉じられるか、別の場所に移動されるまで実行する必要があります。

このスクリプトは、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);
}

無限ループのため、明らかにページは読み込まれません。これについてどうすればよいかについて誰か提案がありますか?

4

4 に答える 4

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);

デモ

于 2011-01-28T04:31:14.857 に答える
0

すべての作業を行う jquery プラグイン ( jQuery webTicker )のようなものもあります。たとえば、ソートされていないリストを実行できます

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

その上でjqueryを使用する

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

これにより、ローテーション スクリプトが自動的に開始されます。また、変更可能なスタイリングのために、プラグイン自体に沿って提供される追加の CSS が必要になります。スクリプトには、マウスが webticker の上にあるときの自動停止機能が含まれていますが、ダウンロード Web サイトのwebticker の例で説明されているように、フェードインおよびフェードアウト効果を得ることができます。

于 2011-12-08T21:10:17.463 に答える
0

毎回起動させたい関数を setTimeout が指すようにし、その関数も setTimeout を再度呼び出すようにする必要があります。これは事実上無限のポーリングですが、遅延が組み込まれています。中断したい場合はフラグを設定することもできます (つまり、setTimeout を再度呼び出さないことにより)。

于 2011-01-28T04:18:25.070 に答える