0

私は現在、新しいウェブサイトを作るのに忙しいです。自分が作ったウェブサイトの数を訪問者に示すカウンターを自分のウェブサイトに作りたいと思います。私は現在、これを行うためにJavascriptとjQueryを使用しています。唯一の問題は、forループを使用している間、結果が非​​常に速く表示されるため、ゆっくりとカウントアップしたいということです。これは私がこれまでに持っているコードです:

$(document).ready(function() {

    var websites = 10;
    for (var i=0;i<websites;i++)
    {
        $('.webcounter').html(i);
    }
});

カウンターを遅くするアイデアはありますか?

4

4 に答える 4

2

あなたはこれを試すことができます:

var interval = window.setInterval(func, delay[, param1, param2, ...]);
于 2012-10-23T18:02:28.713 に答える
1

簡単に推測しますが、このようなことを試してください(私は仕事をしていて、自分自身をテストすることはできません、heheh)

var websites = 10, tmrSiteCount;

function siteCount(i) {
    if (i <= websites) {
        $('.webcounter').html(i);
        tmrSiteCount = setTimeout(function() { siteCount(i++); }, 1000);
    }
    else {
        clearTimeout(tmrSiteCount);
    };
}

$(document).ready(function() {
    tmrSiteCount = setTimeout(function() { siteCount(1); });
})
于 2012-10-23T18:02:30.183 に答える
1

このタイマーは数秒で機能します。elseセクションで完了後にコードを実行することができます。

Javascript

function countdown(count){

    $('.webcounter').html(count);

    count -= 1;

    if(count >= 0)
        setTimeout("countdown("+count+")", 1000);
    else
        alert("Countdown Complete");
}

$(document).ready(function() {

    countdown(10);
}

HTML

<div class="webcounter">Webcounter Holder</div>​

デモ

http://jsfiddle.net/silver89/SBXAQ/8/

于 2012-10-23T18:06:26.673 に答える
1

setIntervalを使用します:

HTML

​&lt;div class="websites">0</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​

JQUERY

$(document).ready(function() {
    var websites = 10;
    var counter = 1;
    var id = setInterval(function(){ 
        $('.websites').text(counter);
        counter++;
        if(counter > websites){ clearInterval(id);}
    }, 500);    
});​
于 2012-10-23T18:15:20.823 に答える