小程序?qū)崿F(xiàn)倒計(jì)時(shí)功能的實(shí)現(xiàn)方式
倒計(jì)時(shí)功能是一個(gè)比較常見的功能,比如用戶獲取驗(yàn)證碼就需要用到。這里記錄一下在微信小程序里面倒計(jì)時(shí)功能的簡(jiǎn)單實(shí)現(xiàn)
直接看看代碼吧
//倒計(jì)時(shí)60秒
function countDown(that,count) {
if (count == 0) {
that.setData({
timeCountDownTop: '獲取驗(yàn)證碼',
counting:false
})
return;
}
that.setData({
counting:true,
timeCountDownTop: count + '秒后重新獲取',
})
setTimeout(function(){
count--;
countDown(that, count);
}, 1000);
}1234567891011121314151617181920
在需要倒計(jì)時(shí)的地方調(diào)用
Page({
data:{
counting:false
},
//生成驗(yàn)證碼
generateVerifyCode:function() {
var that = this;
if (!that.data.counting) {
wx.showToast({
title: '驗(yàn)證碼已發(fā)送',
})
//開始倒計(jì)時(shí)60秒
countDown(that, 60);
}
},
})123456789101112131415161718
下面簡(jiǎn)單介紹下功能的實(shí)現(xiàn)
首先倒計(jì)時(shí)的方法是寫在Page的外面,這個(gè)別搞錯(cuò)了
實(shí)現(xiàn)倒計(jì)時(shí)關(guān)鍵的地方在于setTimeout方法,也即下面這段代碼。setTimeout方法可以設(shè)置在指定的時(shí)間間隔執(zhí)行某個(gè)函數(shù)。應(yīng)用的格式是setTimeout(function(),time),function就是對(duì)應(yīng)要執(zhí)行的方法,time就是時(shí)間間隔,這里的1000表示1000毫秒,也就是間隔1秒執(zhí)行一次countDown方法。
setTimeout(function(){
count--;
countDown(that, count);
}, 1000);1234
countDown方法中利用count字段來設(shè)置倒計(jì)時(shí)的時(shí)間,比如這里是60秒
countDown方法中把that也傳遞進(jìn)去是為了在倒計(jì)時(shí)狀態(tài)改變時(shí)利用setData方法更新頁面
countDown方法中利用counting字段來判斷是否已經(jīng)在倒計(jì)時(shí)了,避免重復(fù)開始倒計(jì)時(shí)
倒計(jì)時(shí)結(jié)束是通過count來判斷,通過return直接退出