github html倒计时器,GitHub - keenwon/Tictac: 简洁的倒计时组件

Tictac

68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f7469637461632e6a732e7376673f7374796c653d666c61742d737175617265

68747470733a2f2f696d672e736869656c64732e696f2f636972636c6563692f70726f6a6563742f6769746875622f6b65656e776f6e2f5469637461632e7376673f6d61784167653d33363030266c6f676f3d636972636c656369267374796c653d666c61742d737175617265

目录:

Example

Tictac.init({

currentTime: Date.parse("2015/01/01 00:00:00"), //设置当前时间

interval: 3000, //执行callback的时间间隔

callback: function() {

//重复执行的回调

}

})

Tictac.create("id1", {

targetId: "id1", //显示计时器的容器

expires: Date.parse("2050/01/01 00:00:00"), //目标时间

format: {

//格式化对象

days: "{d}天 ",

hours: "{hh}小时 ",

minutes: "{mm}分 ",

seconds: "{ss}秒"

},

timeout: function() {

//计时器 timeout 回调

}

})

//任意多个....

Tictac.create("idn", {

targetId: "idn",

expires: Date.parse("2015/01/01 00:00:15"),

format: {

minutes: "{mm}分 ",

seconds: "{ss}秒"

},

timeout: function() {

//....

}

})

Usage

两种安装方式:

使用 npm 安装

npm install tictac.js --save // or yarn

直接下载 tictac.js 使用

Api

init

初始化函数,注册计时器前必须先初始化。参数:

currentTime: 当前时间(时间戳),可设置服务端时间或者直接+new Date()

interval: 执行callback 的时间间隔

callback: 重复执行的回调函数

具体例子看上面的就好了。

create

创建一个计时器,就像上面代码里写的那样,接受两个参数。第一个参数是 ID,一般用 string 或者 int 类型都可以,第二个参数是个对象,包含以下字段:

targetId: 字符串,输出“剩余时间字符串”的容器 ID

expires: 时间戳,计时器的目标时间(或者说是过期时间)

format: 倒计时时间的格式化对象,这个下面单独说

formatIgnore: 配合 format 使用的,下面和 format 一起说讲

timeout: 超时函数,到达 expires 指定的时间后触发

具体例子上面代码里也有。

reset

重新设置计时器,参数与create方法完全相同。例如:

Tictac.reset("id5", {

expires: 1403860277271

})

remove

根据 ID 删除一个计时器

Tictac.remove("id1")

execute

立即执行初始化时设置的 callback 回调。例如你指定每 5s 执行一次 callback,上一次执行 callback 后的 3s,调用 Tictac.execute() 会立刻再执行回调,再过 5s 会再次执行(注意,不是 2s 了)。

getCurrentTime

返回“当前”时间的时间戳,是根据初始化时设置的时间计算的。

regulate

接受一个时间戳,用来校正当前时间,需要使用服务端时间计时的时候,可以使用此方法定期校正。关于使用服务端计时的方案,可以参考stackoverflow。服务端计时精度还是不太满意,尤其是服务器压力大,并发量多的时候,我在项目中使用 Tictac 的时候,只在初始化的时候取了一次服务端时间,大家有什么好的方案欢迎交流。

destroy

销毁 Tictac 已经注册的所有计时器。

格式化对象

所谓的“格式化对象”,就是用来显示倒计时的时间的。例如:5 分 12 秒。格式化对象一般是下面这样:

{

days: '{d}天 ',

hours: '{hh}小时 ',

minutes: '{mm}分 ',

seconds: '{ss}秒'

}

当然如果你只需要精确到天的话,可以只保留 days。另外,设置 formatIgnore 为 true(默认也是 true)的话,会隐藏空值,就拿上面的对象来说,如果现在离目标时间还有 n 多天,那么会完整的显示“XX 天 XX 小时 XX 分 XX 秒”,如果是同一天,就只显示“XX 小时 XX 分 XX 秒”。另外,{hh} 和 {h} 的区别就在于时数小于 10 的时候,例如 8,是显示 08 还是 8。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值