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});

基本上,我只是创建一个默认为现在的新日期对象,然后将时间设置为我今天想要的时间。

然而,这很 hacky,而且它不会在一天结束时重置 - 一旦新的一天结束,它仍然倒计时到前一天的时间。

使用此插件进行每日倒计时是否有更清洁或更好的方法?

2. 二次倒计时

其次 - 我还希望每个倒计时,当它到期时,倒计时到当天晚些时候的第二个时间。

例如,对于 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 似乎工作。

然而,第二部分 - 倒计时直到 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 回答