1

1.デイリーカウントダウン

毎日のカウントダウンのページを作成するために、Keith Wood の jQuery カウントダウン プラグイン (http://keith-wood.name/countdownRef.html) を使用しようとしています。例えば:

  • A - 毎日07:00までカウントダウン
  • B - 毎日09:00までカウントダウン
  • C - 毎日 11:00 までカウントダウン

私はかなりハッキーな方法でやっています:

var foo = new Date();
foo.setHours(11)
foo.setMinutes(0)
foo.setSeconds(0)
$('#fooCountdown').countdown({until: foo});

基本的には、デフォルトで現在の新しい Date オブジェクトを作成し、今日の時刻に時刻を設定するだけです。

ただし、これは非常にハックであり、1 日の終わりにリセットされません。新しい日が過ぎても、前日の時間までカウントダウンします。

このプラグインを使用して毎日のカウントダウンを行うためのよりクリーンな、またはより良い方法はありますか?

2.二次カウントダウン

第二に、各カウントダウンが期限切れになったときに、その日の1秒後の時間までカウントダウンすることも必要です。

たとえば、A の場合、07:00 に達すると、その日の 15:00 までカウントダウンが開始されます。

私は onExpiry 関数を使用してこれを行っています:

$('#officeCountdown').countdown({until: officeOpens, onExpiry: OfficeOpen, alwaysExpire: true});

...

function OfficeOpen() {
    $('#officeCountdown').countdown('option', {until: officeCloses, onExpiry: OfficeClose, alwaysExpire: true});
}

function OfficeClose() {
    alert('Office has closed')
}

最初の部分 - officeOpen が機能するようになるまでのカウントダウン。

ただし、2番目の部分-OfficeCloseが終了するまでカウントダウン-現在の時刻を使用する代わりに、officeOpensとofficeClosesの差を常にカウントダウンし始めるようです-また、関数OfficeCLoseはトリガーされないようです。

何かご意見は?

4

1 に答える 1

0

日付の作成/処理には優れたDatejsプラグインを使用することをお勧めします。
非常に広範囲に及ぶため、入門書とドキュメント読んでください

この方法であなたができる

$('#fooCountdownA').countdown({
    until: Date.today.set({hour:7}) 
});
$('#fooCountdownB').countdown({
    until: Date.today.set({hour:9}) 
});
$('#fooCountdownC').countdown({
    until: Date.today.set({hour:11}) 
});

カウントダウンに関しては、プラグインはカウントダウンを再利用するのに適していないようです.おそらく、ダミー要素を作成し、それらをDOMに挿入してカウントダウンを保持し、有効期限が切れると破棄する方がよいでしょう..

于 2012-10-31T01:55:57.090 に答える