微信小程式用定時器實現倒計時效果
阿新 • • 發佈:2019-01-10
平常在微信小程式開發的時候,因專案的需求,倒計時必不可少,下面主要講解定時器在微信小程式中的使用。
這裡要先宣告一點的就是,該篇主要實現倒計時功能,而且實現是時長較短的倒計時,其他的優化什麼的不作主要考慮。
如果實現簡單的60s倒計時效果,我們可直接使用setInterval即可,但是在微信小程式中,我們需要用微信小程式的語法,這時就會遇到一個難題,那就是怎麼關閉定時器的問題,下面給出例項。
WXML程式碼:
<view class='countDown'>倒計時:<text style='color:red'>{{countDownNum}}</text>s</view>
JS程式碼:
好了,這就是簡單的倒計時實現過程,大家可複製程式碼到微信開發者工具去驗證效果。Page({ /** * 頁面的初始資料 */ data: { timer: '',//定時器名字 countDownNum: '60'//倒計時初始值 }, onShow: function(){ //什麼時候觸發倒計時,就在什麼地方呼叫這個函式 this.countDown(); }, countDown: function () { let that = this; let countDownNum = that.data.countDownNum;//獲取倒計時初始值 //如果將定時器設定在外面,那麼使用者就看不到countDownNum的數值動態變化,所以要把定時器存進data裡面 that.setData({ timer: setInterval(function () {//這裡把setInterval賦值給變數名為timer的變數 //每隔一秒countDownNum就減一,實現同步 countDownNum--; //然後把countDownNum存進data,好讓使用者知道時間在倒計著 that.setData({ countDownNum: countDownNum }) //在倒計時還未到0時,這中間可以做其他的事情,按專案需求來 if (countDownNum == 0) { //這裡特別要注意,計時器是始終一直在走的,如果你的時間為0,那麼就要關掉定時器!不然相當耗效能 //因為timer是存在data裡面的,所以在關掉時,也要在data裡取出後再關閉 clearInterval(that.data.timer); //關閉定時器之後,可作其他處理codes go here } }, 1000) }) } })