微信小程序——倒计时
在微信小程序的开发中,“倒计时”这个操作的应用范围很广泛,但是实现的话还是得有一定的思路,以下讲解一下具体的实现方法:
方法一: 使用setInterval()
countDown: function (currentTime) {
var that = this;
interval = setInterval(function () {
//setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭,setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
//事件
//事件
currentTime--;
that.setData({
time: currentTime + '秒'
})
if (currentTime <= 0) {
clearInterval(interval);//停止setInterval方法
that.setData({
//事件
//事件
})
//事件
//事件
}
}, 1000)
},
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。
上面代码使用setInterval()实现了一个倒计时的功能,当预设时间小于等于0之后,使用调用clearInterval()来停止setInterval()执行,倒计时事件完成。
方法二: 使用setTimeout()
countDown: function (currentTime) {
var that = this;
that.setData({
time: currentTime + '秒'
})
//事件
//事件
currentTime--;
interval = setTimeout(function () {
countDown();//采用递归调用的方法
}, 1000)
if(currentTime <= 0){
clearTimeout(interval);
//事件
//事件
}
},
setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
上面代码使用setTimeout()完成了一个倒计时功能,用到的主要方法是递归,当判断预设值小于等于0之后,使用clearTimeout()来取消设置的setTimeout() 方法设置的 timeout,此时倒计时完成。
以上便是我分享的两种解决倒计时算法的思路,欢迎大家指出不足之处~