0

次のシナリオで使用するのに最適な関数を知っている人はいますか?

曲の再生が始まったら、秒単位でカウントアップする「ストップウォッチ」を開始したいと思います。

いつでも、クリックするボタンなど、この変数を呼び出しalert(time)てタイマーのカウントを表示できるようにしたいと考えています。

しかし、関数reset-timer();を実行すると、これをすべてリセットしてカウントを再開したいと思います。

settimeout または setinterval を考えていましたが、どちらが正しいかわかりません。

ありがとう :)

4

1 に答える 1

3

開始するための基本的な概念は次のとおりです。 http://jsfiddle.net/V29qK/1/

var startTime = new Date();

function SetTime(){
    var curTime = new Date();

    var seconds = Math.round((curTime - startTime) / 1000) + " second(s)";
    document.getElementById("timer").innerHTML = seconds;
}


var interval = setInterval(SetTime, 1000);

function ResetTime(){
    document.getElementById("timer").innerHTML = "0 second(s)";
    startTime = new Date();
}
​

ロジックは次のとおりです。 グローバル変数を anew Date()に設定して、開始時刻を示します。インターバル (またはタイムアウト) で、現在の値を取得し、new Date()そこから開始時間を減算します。これにより、ミリ秒単位で差が得られます。その後、このデータを使用して必要な UI 要素を更新できます。

タイマーを「リセット」するには、開始時刻を現在の時刻に設定するだけです。new Date()

于 2012-09-10T17:14:10.760 に答える