0

わかりました、タイトルは簡単に聞こえるかもしれませんが(おそらくそうかもしれませんが)、配列から値を表示する方法を理解できません。それぞれを使用するだけでなく、ゆっくりとサイトに配置します。効果...

このTwitterウィジェットのようですが、配列から(おそらく2秒待って、配列から別の値をスローするとき)?

私の配列には4つの値を持つ別の配列が含まれていますが、最初の2つの値を表示し、約2秒待ってから、最後の2つの値を表示することはできますか?ここで、最後の2つの値が(前の配列から)出たら、さらに2秒待ってから、次の配列を表示します(ここでも、最初に2を表示し、2秒待ってから、次の2を表示します。 。)

4

2 に答える 2

4

setIntervalこれは、またはの連鎖シリーズを使用して簡単に行うことができますsetTimeout。私は後者を好む傾向があります。これは次のようになります。

function showValues(a, delay) {
    var index = 0;

    if (a.length !== 0) {
        // If you want a delay before the first one:
        setTimeout(showValue, delay);

        // Alternately, if you want to show the first right away
        // showValue();
    }

    // Function to show one value
    function showValue() {
        // Get the value
        var value = a[index++];

        /* ...show the value however you see fit... */

        // Schedule next display, if any
        if (index < a.length) {
            // Schedule next run
            setTimeout(showValue, delay);
        }
    }
}

使用法:

showValues(["value1", "value2", /* etc. */, 2000); 2000 = two seconds

実例| ソース

于 2012-04-25T20:08:52.917 に答える
4

のようなアニメーション関数fadeIn()は、jQuery FXキューを利用するため.delay()、コールチェーンで使用して、これらの関数の呼び出しを遅らせることができます。次の例では、1秒ごとに1つの要素が表示されます。

var data = ['foo', 'bar', 'foobar', 'moo', 'meow', 'xxx'];
var list = $('ul');
$.each(data, function(i, value) {
    $('<li/>', { text: value }).hide().appendTo(list).delay(i * 1000).fadeIn();
});

デモ: http: //jsfiddle.net/ThiefMaster/frW8s/

于 2012-04-25T20:10:08.033 に答える