微信开发之小程序实现倒计时

setTimeout(func, time)可以使得每隔time毫秒就执行一次func函数,常用来做计时器/时钟。

下面是在微信小程序中的使用思路,只截取了关键部分代码。

var timer; // 计时器

Page({
  // ...省略
  
  // 自定义的开始按钮
  startBtn: function () {
    console.log("开始按钮");
    Countdown();
  },

  // 自定义的暂停按钮  
  pauseBtn: function () { 
    console.log("暂停按钮");
    clearTimeout(timer);
  },
});

// 倒计时
function Countdown() {
  timer = setTimeout(function () {
    console.log("----Countdown----");
    Countdown();
  }, 1000);
};

思路:

  • setTimeout()延迟指定毫秒数后执行指定函数,可通过递归调用setTimeout()来实现各种计时器功能。
  • 如果想做每秒钟刷新一次的时钟,只需每次执行时间转换函数并setData更新界面即可。
  • 使用clearTimeout("定时器的名字")可以停下指定的计时器。

下面是Javascript关于时间的转换函数。

// 秒数 --> 时:分:秒
function formatTime(seconds) {
    return [
        parseInt(seconds / 60 / 60), // 时
        parseInt(seconds / 60 % 60), // 分
        parseInt(seconds % 60)       // 秒
    ]
        .join(":")
        .replace(/\b(\d)\b/g, "0$1");
}

另外,做定时重复调用函数的功能时,用setTimeOut()代替setInterval(),因为setInterval()是有误差的!详情参考

参考资料:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值