一级片大奶子_色又黄又爽18禁免费视频_热久久久久久久_久久久精品一区二区_日韩av不卡在线播放_精品国内自产拍在线观看视频

商城系統(tǒng) 注冊

微信小程序倒計(jì)時組件實(shí)例

2020-09-27|HiShop
導(dǎo)讀:下面為大家介紹微信小程序倒計(jì)時組件,這一組件主要用來顯示小程序中倒計(jì)時的效果,下面為開發(fā)文檔...

下面為大家介紹微信小程序倒計(jì)時組件,這一組件主要用來顯示小程序中倒計(jì)時的效果,下面為開發(fā)文檔

微信小程序倒計(jì)時組件實(shí)例

重構(gòu)舊代碼

在原來的組件中有一個initDuration屬性和3個方法,3個方法分別是countDown,format和runCountDown。

initDuration屬性

首先我們需要三個page屬性來幫助完成接下來的代碼,它們的名字和內(nèi)容如下:

timer: null, // 存儲setInterval的ID
flag: false, // 倒計(jì)時是否結(jié)束的標(biāo)志
num: 0 // 過去的秒數(shù)
復(fù)制代碼

在initDuration屬性的新的回調(diào)方法中,我們封裝了clearTimer方法,init初始化方法,并且執(zhí)行倒計(jì)時。

initDuration: {
  type: Number,
  value: 0,
  observer: function (newVal) {
    if (this.timer) {
      this.clearTimer()
    }
  
    this.init() // 重置num和flag
    this.runCountDown(newVal)
  }
},
復(fù)制代碼

一定要注意,當(dāng)傳入的屬性的值為默認(rèn)值,例如這里是0時,是不會觸發(fā)observer回調(diào)的。

/**
 * 初始化函數(shù)
 */
init: function () {
  this.flag = false
  this.num = 0
}

/**
 * 清空計(jì)時器
 */
clearTimer: function () {
  clearInterval(this.timer)
  this.timer = null
}
復(fù)制代碼

countDown方法

countDown方法是接受一個參數(shù)為倒計(jì)時的秒數(shù),返回一個倒計(jì)時的字符串。在這個方法中沒有太大改動,只是改動了一些代碼格式。如下:

/**
 * 計(jì)算倒計(jì)時
 * @param {Number} duration - 秒數(shù)時間差
 * @returns {string} 倒計(jì)時的字符串
 */
countDown: function (duration) {
  if (duration <= 0) {
    this.setFlag(true) // 將flag屬性設(shè)為true
    return '00:00:00' // 返回默認(rèn)時間設(shè)置
  }

  let seconds = this._format(duration % 60)
  let minutes = Math.floor(duration / 60)
  minutes = minutes >= 60 ? this._format(minutes % 60) : this._format(minutes)
  let hours = this._format(Math.floor(duration / 3600))

  return `${hours}:${minutes}:${seconds}`
},
復(fù)制代碼

format方法

format方法的作用很簡單,就是處理小于10的數(shù)字展示問題。

/**
 * 格式化小于10的數(shù)字
 * @param {Number} time - 小于10的數(shù)字
 * @returns {string} 格式化后的字符串
 */
format: function (time) {
  return time >= 10 ? time : `0${time}`
},
復(fù)制代碼

runCountDown方法

runCountDown方法中的改動比較大,在原來的代碼中邏輯比較混亂,穿插了許多無關(guān)的代碼,其實(shí)應(yīng)該將它們封裝起來達(dá)到解耦的目的。

runCountDown: function (initDuration) {
  // 第一次給倒計(jì)時賦值 this.setData({ countDownStr })
  this.setCountDownTime(this.countDown(initDuration))

  // 每一秒更新一次倒計(jì)時
  this.timer = setInterval(() => {
    if (this.flag == true) { // 倒計(jì)時結(jié)束
      clearInterval(this.timer)

      return undefined
    }

    this.addNum() // this.num += 1
    this.setCountDownTime(this._countDown(initDuration - this.num))
  }, 1000)
},
復(fù)制代碼

增加新功能

我們原來的倒計(jì)時組件是缺乏一些功能的,例如傳入的時間只能是秒數(shù),倒計(jì)時結(jié)束后只顯示00:00:00,如果傳入的值是0的話會不進(jìn)行初始化(這算是Bug了)。所以我們需要加入以下的新功能:

  • 支持自定義倒計(jì)時結(jié)束后現(xiàn)實(shí)的字符串。
  • 修復(fù)傳入值為0的Bug。
  • 傳入的時間可以是秒數(shù),也可以是UTC時間的字符串。

自定義結(jié)束字符串

在倒計(jì)時組件中,展示倒計(jì)時字符串的是this.data.countDownTime屬性。所以在結(jié)束時將countDownTime屬性的值設(shè)為傳入的字符串即可。 首先,封裝一個賦值方法

setEndContent: function (countDownTime) {
  if (countDownTime) {
    this.setData({ countDownTime })
  }
}
復(fù)制代碼

接下來為組件新增加一個屬性為 endContent 。

endContent: {
  type: String,
  value: '00:00:00'
}
復(fù)制代碼

接下來,在倒計(jì)時結(jié)束的位置,調(diào)用我們的賦值方法,也就是runCountDown方法的計(jì)時器回調(diào)函數(shù)中。

this.timer = setInterval(() => {
  if (this.flag == true) {
    clearInterval(this.timer)
    
    this.setEndContent(this.properties.endContent) // 設(shè)置結(jié)束字符串
    
    return undefined
  }
    
  this.addNum()
  this.setCountDownTime(this._countDown(initDuration - this.num))
}, 1000)
復(fù)制代碼

這樣自定義字符串就成功了,在使用組件時傳入默認(rèn)值即可。

修復(fù)傳入值為0的Bug

這個問題的出現(xiàn)是因?yàn)楫?dāng)傳入屬性為默認(rèn)值時,不會調(diào)用observer回調(diào)函數(shù),所以這時我們需要使用組件的 attached 生命周期函數(shù)。

attached: function () {
  if (this.properties.initDuration <= 0) {
    // 如果傳入值為零時不會調(diào)用observer回調(diào),則直接從這里展示倒計(jì)時結(jié)束
    this.setEndContent(this.properties.endContent)
  }
}
復(fù)制代碼

可以傳入UTC時間字符串

為了簡潔起見,我們就不為組件增加新的屬性了,依然使用initDuration屬性,所以要將其type從Number改為null(小程序的這點(diǎn)不夠強(qiáng),不能選擇多類型。)。在修改type后我們需要封裝一個將UTC時間字符串解析成倒計(jì)時秒數(shù)的方法。

parseDate: function (date) {
  if (typeof date == 'string') {
    // 將傳進(jìn)來的時間減去現(xiàn)在的時間,得到的結(jié)果便和直接傳進(jìn)數(shù)字值相同
    return Math.floor((+new Date(date) / 1000)) - Math.floor((+new Date / 1000))
  }
  
  return date
}
復(fù)制代碼

在observer回調(diào)中調(diào)用時如下:

initDuration: {
  type: null,
  observer: function (newVal) {
    if (this.timer) {
      this._clearTimer()
    }
  
    this._init()
    this._runCountDown(this.parseDate(newVal)) // 在這里調(diào)用parseData方法
  }
}
復(fù)制代碼

HiShop小程序工具提供多類型商城/門店小程序制作,可視化編輯 1秒生成5步上線。通過拖拽、拼接模塊布局小程序商城頁面,所看即所得,只需要美工就能做出精美商城。更多小程序商店請查看:小程序商店

微信小程序倒計(jì)時組件實(shí)例

 

電話咨詢 預(yù)約演示 0元開店
主站蜘蛛池模板: 555www色欧美视频|GOGOGO高清免费看韩国|性毛片|欧美日韩国产这里只有精品|尤物视频免费观看|中国少妇bbbbxxxx | 久草国产精品视频|综合日韩天天久久一本|精品国产性色无码=av网站|国产极品福利在线|国产精品白丝喷水JK娇喘视频|免费xxxxx在线观看网站软件 色综合久久综合中文综合网|午夜福利国产在线观看1|毛片免费视频观看|黑人把女人弄到高潮视频|www.国产精品视频|免费色网 久久网国产|国产精品久99|国产hsck在线亚洲|性导航唐人社区|久久精品国产亚洲=aV高清色欲|久久99精品久久久久久久夜夜爽 | 日本三区|又大又黄又粗高潮免费|国产成年女人免费视频播放=a|国产美女视频国产视视频|欧美成综合|国产成人=av一区二区三区 | 日本=a一级|国产亚洲精品精|中国女人特级毛片|蜜乳=av一区二区三区|欧美群妇大交群的观看方式|日一区二区三区 | 青娱乐极品视觉盛宴=av|国产成人=av无码片在线观看|国产网站入口|国产一区二区=av|星空天美mv视频大全免费观看|曰韩一级片 | 国产白丝喷水娇喘视频|亚洲短视频在线观看|欧美全黄|久久夫妻视频|日韩高清无码免费|2020久久精品亚洲热综合一本 | 6996网站免费观看|麻豆传媒免费在线观看|欧美多p视频|老司机午夜在线|亚洲国产高清理论片|国产在线高清观看 | 成人=av免费|欧洲-级毛片内射|国产精品亚洲а∨天堂网不卡|人人干美女|亚洲天堂国产精品|免费一级特黄 | 欧美一区二区三区视频在线观看|日韩不卡高清|成人午夜视频无码免费视频|一道本道加勒比天天看|欧美成年人视频在线观看|日本中文字幕乱码免费 51久久夜色精品国产水果派解说|国产欧美日韩视频免费|国产96在线亚洲|人妻无码中文字幕免费视频蜜桃|成人=a片产无码免费视频奶头鸭度|亚洲已满18点击进入在线看片 | 日韩精品三区|国产成人精品=a视频免费福利|色中色综合|国产成人精品一区二区三区四区|国产一级毛片精品完整视频版|国产字幕在线看 | 最近中文字幕在线mv视频在线|#NAME?|色惰网站|草逼一区|免费精品国产的网站免费观看|播放日韩一级黄色片 | 久久久久动漫|亚洲影视资源网|久操福利在线|娇小小小泬ⅩXXX深喉|中文字幕乱码中文乱码777|超碰在线个人 | 免费在线观看黄色大片|综合一区无套内射中文字幕|你好星期六在线免费观看|91探花福利精品国产自产在线|成人18夜夜网深夜福利网|九九影院理论片在线观看一级 | 国产一区2区3区|一级片=a=a|日韩欧美不卡一卡二卡3卡四卡2021免费|国产深夜福利在线|免费=a级黄色片|肉感饱满中年熟妇日本 | 办公室强行丝袜秘书啪啪|国产超薄丝袜足底脚交国产|校花被强糟蹋十八禁免费视频|国产一级纯肉体一级毛片|四虎影院网站|成人免费的视频 | 国内精品久久国产|国产一区二区三区内射高清|一二三四视频在线社区中文字幕2|大地资源在线观看中文免费|午夜精品免费观看|无码成人18禁动漫网站 | 久久久久久久久久久久=av|少妇又白又嫩又色又粗|欧美日韩精品免费观看视一区二区|国产手机精品一区二区|伊人=av网|久久大香萑太香蕉=aV黄软件 | 亚洲国产精品无码第一区二区三区|十大免费最污的软件|玖玖99视频|激情动漫在线观看|#NAME?|蝌蚪视频窝在线播放 | 视频麻豆|91嫩草在线免费观看|久久国产午夜|黑人与日本少妇J=aP=aNESE|免费大片黄在线观看|91色一区二区三区 | 日本xxx大片免费观看|久色在线三级三级三级免费看|视频一区在线播放|国产=a∨国片精品白丝美女视频|天美传媒=aV成人片免费看|成人天堂yy6080亚洲高清 | 亚洲激情在线观看视频|一区二区和激情视频|亚洲男人的天堂色偷免费|女人被爽到高潮视频|久操社区|亚洲无色 | pron麻豆|66lu国产在线观看|久久WWW免费人成一看片|亚洲精品乱码久久久久久久久|国语高潮无遮挡无码免费看|成人在线观看18 | 中国极品少妇xxxxx小艳|久久国产日韩|九七=av|欧美一级淫片免费看|少妇搡BBBB搡BBBB毛多多|无码人妻一区二区三区巨免费 | 成人午夜久久|成人久久18免费网站麻豆|国产精品免费一区二区三区在线观看|男人天堂黄色|蜜臀二区|www亚洲免费 | 广东少妇大战黑人34厘米视频|日韩午夜在线|国产=aⅴ激情无码久久久无码|精品人妻无码一区二区三区色欲|日本阿v天堂|亚洲视频在线播放 | 91精品在线观看入口|情人伊人久久综合亚洲|亚洲=aV成人无码网站18禁在线播放|午夜久久福利视频|国产精品午夜福利不卡|午夜黄色录像 | 中文字幕一级毛片|538精品视频在线|www亚洲|白丝=av片|网友自拍=av|男人边吻奶边挵进去视频 | 麻豆精品一区二区三区视频|99精美视频|久久精品久久精品中文字幕|BGMBGMBGM欧美老妇|插插久久|男女XX00上下抽搐动态图 | 二区视频在线|久久99精品久久久野外观看|国产欧美日韩一区二区三区在线观看|久久国产色=av免费看|樱花草在线播放免费中文|亚洲最新版=aV无码中文字幕 | 操逼视频软件|免费=a级毛视频|超碰最新在线|免费无码又色又爽又黄的视频软件|jizz亚洲国产|极品少妇的粉嫩小泬看片 | 国产高清=av首播原创麻豆|国产h色视频在线观看|成年人网站免费在线观看|#NAME?|免费看黄色片子|亚洲一区在线 特级毛片内射www无码|日韩激情无码激情=a片免费软件|伊人狠狠色丁香婷婷综合动态图|高清性色生活视频|色噜噜狠狠狠狠色综合久一|久久精品免费视频播放 | 亚洲v=a欧美v=a国产v=a黑人|蜜臀=av午夜一区二区三区gif|69人人|国产精品免费大片|亚洲日产=av中文字幕|国产精品香蕉成人网在线观看 | #NAME?|日韩三区在线观看|三级一区|绝顶潮喷绝叫在线观看|粉嫩欧美一区二区三区|国产成人=aV无码永久免费一线天 | 欧美一区激情|久久久久久久91|免费看日本黄色|一区二区精品视频日本|秋霞一区二区|国产精品无码一区二区=aⅤ污美国 | 成人免费高清|精品色呦呦|国产另类ts人妖一区二区|99热精品在线|国产人免费人成免费视频|欧美国产日韩二区 | 久久精品国产2020|在线国产99|中文字幕视频一区|精品免费久久久|欧美性XXXX丰满极品少妞|欧美精品1区2区 | 水蜜桃一区二区|特黄特黄=a级毛片免费专区|99久免费视频精品老司机|#NAME?|狠狠综合久久久久尤物|欧美成人精品在线观看 | 碰碰精品|日本少妇被黑人XXXXX|大黑人交xxxx|色狠狠一区|97精品97|欧美牲交=a欧美牲交=aⅴ免费真 | 激情欧美综合|野花香日本在线观看免费视频|99re热久久这里只有精品34|亚洲精品久久夜色撩人男男小说|videos少妇|五月综合缴情婷婷六月 国产最新在线观看|久久黄页|在线不卡日本v二区707|成人免费一区二区三区在线观看|欧美又粗又大色情hd堕落街传奇|免费观看全黄做爰的视频 | 久久久久无码国产精品一区乞丐|97一区二区三区|成人影院久久|九九九免费|俄罗斯18一19sex性大|国产精品一二三四区免费 | 91大片淫黄大片在线天堂|国内国产精品久久|91cc.live最新国产|成人=aⅴ视频|v=a在线|国产成人免费视 |