2012-04-06 4 views
0

私はカウントダウンタイマーを作成し、これをHTMLとCSSでコーディングしましたが、jQueryを使用して機能させることができませんでした。このカウントダウンを機能化するにはどうすればよいですか?あなたが見ることができるようにカウントダウンを機能化するには?

<div id="counter-container"> 
     <div class="counter-box"> 
     <div class="counter"><p class="counter-p">#</p></div> 
     <p class="counter-box-p">days</p> 
     </div> 
     <div class="counter-box"> 
     <div class="counter"><p class="counter-p">#</p></div> 
     <p class="counter-box-p">hours</p> 
     </div> 
     <div class="counter-box"> 
     <div class="counter"><p class="counter-p">#</p></div> 
     <p class="counter-box-p">minutes</p> 
     </div> 
     <div class="counter-box"> 
     <div class="counter"><p class="counter-p">#</p></div> 
     <p class="counter-box-p">seconds</p> 
     </div> 

、私はすでに、日、時間などのための段落要素を追加したので、私はjQueryの経由余分なテキストを埋め込むにしたくない:ここで私はカウントダウンがであることを好むHTML構造があります。

P.S.誰も新しいカウントダウンの日付を設定する方法を教えてもらえますか?

+3

あなた自身のカウントダウン?もしそうなら、あなたはどこにいらっしゃいましたか? – Armatus

+0

カウントダウンを実行しましたが、そのフォーマットは時間と大きく異なり、カスタマイズするのに苦労しました。 –

+0

私の答えを言い換えてみましょう:私が仕事にしようとしているjQueryプラグインは、div(または他の要素)を割り当てるだけで、jQueryはそのDIV内の他の必要な要素時間、分など)。しかし、私はこれらの要素のクラスとIDを取得するためにGoogle Chromeの開発者ツールに行くと、私はそれが私のデザインのように見えるようにデフォルトのものではないようにいくつかのCSSを割り当てることができます(グリッチを開始)することができません。ホープこれは助けました:) –

答えて

4
function counter(count) { 
    countdown = setInterval(function(){ 
    var temp; 
    $("p#d").html(Math.floor(count/(60*60*24))); 
    temp = count%(60*60*24); 
    $("p#h").html(Math.floor(temp/(60*60))); 
    temp = count%(60*60); 
    $("p#m").html(Math.floor(temp/(60))); 
    temp = count%(60); 
    $("p#s").html(temp); 
    if (count == 0) { 
     alert("time's up"); 
     clearInterval(countdown);  
    } 
    count--; 
    }, 1000); 
} 

counter(60*60*24*2); 

demo

EDIT-1:

カウンタ秒として時刻を取得します。

counter(10); //10 seconds 
counter(10*60) //600 seconds -> 10 minutes. 
counter(10*60*60) //36000 seconds -> 600 minutes -> 10 hour 

EDIT-2:あなたが実装しようとしましたあなたはそれがベースDateを動作するように、あなたはこのような機能を変更すべきかどう

function counter(futureDate) { 
    var today = new Date(); // today 
    count = Math.floor((futureDate-today)/1000); 
    countdown = setInterval(function(){ 
    var temp; 
    $("p#d").html(Math.floor(count/(60*60*24))); 
    temp = count%(60*60*24); 
    $("p#h").html(Math.floor(temp/(60*60))); 
    temp = count%(60*60); 
    $("p#m").html(Math.floor(temp/(60))); 
    temp = count%(60); 
    $("p#s").html(temp); 
    if (count == 0) { 
     alert("time's up"); 
     clearInterval(countdown);  
    } 
    count--; 
    }, 1000); 
} 

counter(new Date(2012,4,8)); // May 8, 2012 00:00:00 
/* counter(new Date(2012,4,8,15,49,10)); // May 8, 2012 15:49:00 */ 
​ 

http://jsfiddle.net/NfLAB/1/

+0

素晴らしい!どのように私は時間を調整することができますか?私はそれらの番号の何かを取得しないので:)申し訳ありません。 –

+1

イニシャライザを変更することができます。現在のところ、2日間カウントダウンするように設定されています。 60秒* 60分* 24時間* 2日)。 2時間だけ "counter(120);"または "counter(60 * 2)"に変更してください。 –

+0

ねえ、コードは魅力のように機能します!ありがとう。しかし、日付を与えるための方法はありますか?そして、コードは今から日付までの時間の作業の残りの部分ですか?これは現時点ではまだローカルで、自分のコンピュータ上にあるプロジェクトに取り組んでいるからです。ですから、毎回ページをリロードしたり、何かを変更したりするたびに、タイマーがリセットされるだけです。なぜこれが起こるのですか?とにかく、何もしなければ、私はアップロード時に時間を変更することに問題はありません。ありがとう:) –

関連する問題