2016-12-08 5 views
2

jqueryのカウントダウンタイマーを作成したい、私は次のコードを試みたが、それは動作しません。何をするのですか?分と秒のjQueryのカウントダウンタイマー

DEMO:https://jsfiddle.net/tbosn210/

var interval = setInterval(function() { 
 
    
 
    var timer2 = $("5:01"); 
 
    var timer = timer2.split(':'); 
 
    //by parsing integer, I avoid all extra string processing 
 
    var minutes = parseInt(timer[0],10); 
 
    var seconds = parseInt(timer[1],10); 
 
    --seconds; 
 
    minutes = (seconds < 0) ? --minutes : minutes; 
 
    if (minutes < 0) clearInterval(interval); 
 
    seconds = (seconds < 0) ? 59 : seconds; 
 
    seconds = (seconds < 10) ? '0' + seconds : seconds; 
 
    //minutes = (minutes < 10) ? minutes : minutes; 
 
    $('.countdown').html(minutes + ':' + seconds); 
 
}, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="countdown"></div>

答えて

8
は継続して実行の終了時にタイマ2には時間の新しい値を割り当てる、のsetInterval関数のうち、あなたのタイマ2の宣言を移動し

ワーキングスニペット:あなたはドン

var timer2 = "5:01"; 
 
var interval = setInterval(function() { 
 

 

 
    var timer = timer2.split(':'); 
 
    //by parsing integer, I avoid all extra string processing 
 
    var minutes = parseInt(timer[0], 10); 
 
    var seconds = parseInt(timer[1], 10); 
 
    --seconds; 
 
    minutes = (seconds < 0) ? --minutes : minutes; 
 
    if (minutes < 0) clearInterval(interval); 
 
    seconds = (seconds < 0) ? 59 : seconds; 
 
    seconds = (seconds < 10) ? '0' + seconds : seconds; 
 
    //minutes = (minutes < 10) ? minutes : minutes; 
 
    $('.countdown').html(minutes + ':' + seconds); 
 
    timer2 = minutes + ':' + seconds; 
 
}, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="countdown"></div>

+0

もHTTPS JavaScriptで変数を宣言する方法についてはここを見てとります://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/var、timer2をjQueryとして宣言する必要はありませんオブジェクト。 –

+0

@AJ '1:30:00'のようにformateの場合も何時にするのですか –

+1

@alkavaghela:あなたのためのフィドルを作成しましたhttps://jsfiddle.net/2dL6u5h5/1/ .. PS:これを達成するためのJavaScript関数ですが、これを参照のために使用することができます。疑問や疑問があるかどうか質問してください。:) –

0
var timer2 = $("5:01"); 
    var timer = timer2.split(':'); 

; tは、文字列のためのラップのjQueryを使用する必要があります。 だから、まずこれを修正してください:

var timer2 = "5:01"; var timer = timer2.split( ':');

と、それぞれあなたの間隔の繰り返しが上記のスニペットはカウントダウンを提供します5:01

3

var timer2 = "5:01"; 
 
var interval = setInterval(function() { 
 

 

 
    var timer = timer2.split(':'); 
 
    //by parsing integer, I avoid all extra string processing 
 
    var minutes = parseInt(timer[0], 10); 
 
    var seconds = parseInt(timer[1], 10); 
 
    --seconds; 
 
    minutes = (seconds < 0) ? --minutes : minutes; 
 
    seconds = (seconds < 0) ? 59 : seconds; 
 
    seconds = (seconds < 10) ? '0' + seconds : seconds; 
 
    //minutes = (minutes < 10) ? minutes : minutes; 
 
    $('.countdown').html(minutes + ':' + seconds); 
 
    if (minutes < 0) clearInterval(interval); 
 
    //check if both minutes and seconds are 0 
 
    if ((seconds <= 0) && (minutes <= 0)) clearInterval(interval); 
 
    timer2 = minutes + ':' + seconds; 
 
}, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="countdown"></div>
に開始値をリセットするので、あなたは、開始変数5時01分を取得する必要があります秒0:00まで clearInterval関数は、最後に分と秒の両方が値として0を含んでいるかどうかをチェックすることによって呼び出す必要があります。

0

var timer2 = "5:01"; 
 
var interval = setInterval(function() { 
 

 

 
    var timer = timer2.split(':'); 
 
    //by parsing integer, I avoid all extra string processing 
 
    var minutes = parseInt(timer[0], 10); 
 
    var seconds = parseInt(timer[1], 10); 
 
    --seconds; 
 
    minutes = (seconds < 0) ? --minutes : minutes; 
 
    if (minutes < 0) clearInterval(interval); 
 
    seconds = (seconds < 0) ? 59 : seconds; 
 
    seconds = (seconds < 10) ? '0' + seconds : seconds; 
 
    //minutes = (minutes < 10) ? minutes : minutes; 
 
    $('.countdown').html(minutes + ':' + seconds); 
 
    timer2 = minutes + ':' + seconds; 
 
}, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="countdown"></div>

はどのようにあなたの代わりに-1のOO OOで停止を行うことができます。59

0

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script> 
 
var minutes = 1, seconds = 59; 
 
    jQuery(function(){ 
 
    jQuery("span.countdown").html(minutes + ":" + seconds); 
 
    var count = setInterval(function(){ if(parseInt(minutes) < 0) { clearInterval(count); } else {jQuery("span.countdown").html(minutes + ":" + seconds); if(seconds == 0) { minutes--; if(minutes < 10) minutes = "0"+minutes; seconds = 59;} seconds--; if(seconds < 10) minutes = "0"+seconds;} }, 1000); 
 
    }) 
 
</script> 
 
<span class="countdown"></span>

関連する問題