這篇文章給大家分享的是有關(guān)微信小程序中如何實(shí)現(xiàn)獲取驗(yàn)證碼倒計(jì)時(shí)60s功能的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、禹會(huì)網(wǎng)絡(luò)推廣、微信小程序、禹會(huì)網(wǎng)絡(luò)營銷、禹會(huì)企業(yè)策劃、禹會(huì)品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供禹會(huì)建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
微信小程序倒計(jì)時(shí)獲取驗(yàn)證碼的具體代碼,供大家參考,具體內(nèi)容如下
1、工具類(引用微信小程序提供的工具類)
countdown.js
class Countdown { constructor(options = {}) { Object.assign(this, { options, }) this.__init() } /** * 初始化 */ __init() { this.page = getCurrentPages()[getCurrentPages().length - 1] this.setData = this.page.setData.bind(this.page) this.restart(this.options) } /** * 默認(rèn)參數(shù) */ setDefaults() { return { date: `June 7, 2087 15:03:25`, refresh: 1000, offset: 0, onEnd() {}, render(date) {}, } } /** * 合并參數(shù) */ mergeOptions(options) { const defaultOptions = this.setDefaults() for (let i in defaultOptions) { if (defaultOptions.hasOwnProperty(i)) { this.options[i] = typeof options[i] !== `undefined` ? options[i] : defaultOptions[i] if (i === `date` && typeof this.options.date !== `object`) { this.options.date = new Date(this.options.date) } if (typeof this.options[i] === `function`) { this.options[i] = this.options[i].bind(this) } } } if (typeof this.options.date !== `object`) { this.options.date = new Date(this.options.date) } } /** * 計(jì)算日期差 */ getDiffDate() { let diff = (this.options.date.getTime() - Date.now() + this.options.offset) / 1000 let dateData = { years: 0, days: 0, hours: 0, min: 0, sec: 0, millisec: 0, } if (diff <= 0) { if (this.interval) { this.stop() this.options.onEnd() } return dateData } if (diff >= (365.25 * 86400)) { dateData.years = Math.floor(diff / (365.25 * 86400)) diff -= dateData.years * 365.25 * 86400 } if (diff >= 86400) { dateData.days = Math.floor(diff / 86400) diff -= dateData.days * 86400 } if (diff >= 3600) { dateData.hours = Math.floor(diff / 3600) diff -= dateData.hours * 3600 } if (diff >= 60) { dateData.min = Math.floor(diff / 60) diff -= dateData.min * 60 } dateData.sec = Math.round(diff) dateData.millisec = diff % 1 * 1000 return dateData } /** * 補(bǔ)零 */ leadingZeros(num, length = 2) { num = String(num) if (num.length > length) return num return (Array(length + 1).join(`0`) + num).substr(-length) } /** * 更新組件 */ update(newDate) { this.options.date = typeof newDate !== `object` ? new Date(newDate) : newDate this.render() return this } /** * 停止倒計(jì)時(shí) */ stop() { if (this.interval) { clearInterval(this.interval) this.interval = !1 } return this } /** * 渲染組件 */ render() { this.options.render(this.getDiffDate()) return this } /** * 啟動(dòng)倒計(jì)時(shí) */ start() { if (this.interval) return !1 this.render() if (this.options.refresh) { this.interval = setInterval(() => { this.render() }, this.options.refresh) } return this } /** * 更新offset */ updateOffset(offset) { this.options.offset = offset return this } /** * 重啟倒計(jì)時(shí) */ restart(options = {}) { this.mergeOptions(options) this.interval = !1 this.start() return this } }
export default Countdown
2、WXML部分:
{{ c2 || '獲取驗(yàn)證碼' }}
3、JS部分:
import $wuxCountDown from 'countdown/countdown' export { $wuxCountDown, } import { $wuxCountDown } from '../../components/wux' vcode: function () { if (this.c2 && this.c2.interval) return !1 this.c2 = new $wuxCountDown({ date: +(new Date) + 60000, onEnd() { this.setData({ c2: '重新獲取驗(yàn)證碼', }) }, render(date) { const sec = this.leadingZeros(date.sec, 2) + ' 秒后重發(fā) ' date.sec !== 0 && this.setData({ c2: sec, }) }, }) }
感謝各位的閱讀!關(guān)于“微信小程序中如何實(shí)現(xiàn)獲取驗(yàn)證碼倒計(jì)時(shí)60s功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!