<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        微信小程序實現倒計時60s獲取驗證碼

        來源:懂視網 責編:小OO 時間:2020-11-27 22:32:33
        文檔

        微信小程序實現倒計時60s獲取驗證碼

        本文實例為大家分享了微信小程序倒計時獲取驗證碼的具體代碼,供大家參考,具體內容如下:1、工具類(引用微信小程序提供的工具類)。countdown.js。== `undefined` ?;options[i] : defaultOptions[i]if (i === `date` && typeof this.options.date。== `object` ?;new Date(newDate) : newDatethis.render()return this}/*** 停止倒計時*/stop() {if (this.interval) {clearInterval(this.interval)this.interval =
        推薦度:
        導讀本文實例為大家分享了微信小程序倒計時獲取驗證碼的具體代碼,供大家參考,具體內容如下:1、工具類(引用微信小程序提供的工具類)。countdown.js。== `undefined` ?;options[i] : defaultOptions[i]if (i === `date` && typeof this.options.date。== `object` ?;new Date(newDate) : newDatethis.render()return this}/*** 停止倒計時*/stop() {if (this.interval) {clearInterval(this.interval)this.interval =

        本文實例為大家分享了微信小程序倒計時獲取驗證碼的具體代碼,供大家參考,具體內容如下

        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)
        }
        /**
        * 默認參數
        */
        setDefaults() {
        return {
        date: `June 7, 2087 15:03:25`, 
        refresh: 1000, 
        offset: 0, 
        onEnd() {}, 
        render(date) {}, 
        }
        }
        /**
        * 合并參數
        */
        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)
        }
        }
        /**
        * 計算日期差
        */
        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
        }
        /**
        * 補零
        */
        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
        }
        /**
        * 停止倒計時
        */
        stop() {
        if (this.interval) {
        clearInterval(this.interval)
        this.interval = !1
        }
        return this
        }
        /**
        * 渲染組件
        */
        render() {
        this.options.render(this.getDiffDate())
        return this
        }
        /**
        * 啟動倒計時
        */
        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
        }
        /**
        * 重啟倒計時
        */
        restart(options = {}) {
        this.mergeOptions(options)
        this.interval = !1
        this.start()
        return this
        }
        }
        

        export default Countdown

        2、WXML部分:

        <view class="weui-cell__ft">
         <view class="weui-vcode-btn" bindtap="vcode">{{ c2 || '獲取驗證碼' }}</view>
        </view>
        
        
        

        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: '重新獲取驗證碼',
         })
         },
         render(date) {
         const sec = this.leadingZeros(date.sec, 2) + ' 秒后重發 '
         date.sec !== 0 && this.setData({
         c2: sec,
         })
         },
         })
         }

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        微信小程序實現倒計時60s獲取驗證碼

        本文實例為大家分享了微信小程序倒計時獲取驗證碼的具體代碼,供大家參考,具體內容如下:1、工具類(引用微信小程序提供的工具類)。countdown.js。== `undefined` ?;options[i] : defaultOptions[i]if (i === `date` && typeof this.options.date。== `object` ?;new Date(newDate) : newDatethis.render()return this}/*** 停止倒計時*/stop() {if (this.interval) {clearInterval(this.interval)this.interval =
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲国产一区明星换脸| 在线A亚洲老鸭窝天堂| 午夜成人免费视频| 18女人腿打开无遮掩免费| 免费无码不卡视频在线观看| 国产成+人+综合+亚洲专| GOGOGO高清免费看韩国| 毛片免费vip会员在线看| 亚洲妇熟XXXX妇色黄| 亚洲综合欧美色五月俺也去| 99久久99这里只有免费的精品 | 久久精品国产亚洲Aⅴ香蕉| 亚洲成综合人影院在院播放| 国产伦精品一区二区免费| 亚洲人成色7777在线观看不卡| 成人午夜免费视频| 在线免费观看国产视频| 亚洲导航深夜福利| 性做久久久久久久免费看| 亚洲日韩图片专区第1页| eeuss免费影院| 国产乱子伦精品免费女| 亚洲综合一区国产精品| 国产乱子伦精品免费无码专区| 久久WWW免费人成—看片| 亚洲精品在线观看视频| 一个人在线观看视频免费| 亚洲1区2区3区精华液| 国产人在线成免费视频| 亚洲男女性高爱潮网站| 日本免费一区二区三区四区五六区| 亚洲午夜久久久影院| 一区二区三区AV高清免费波多| 亚洲精品乱码久久久久久中文字幕 | 亚洲乱色伦图片区小说| 免费精品国产日韩热久久| 亚洲AV无码一区二区三区性色| 在线观看国产区亚洲一区成人 | 亚洲av无码专区在线| 2020久久精品国产免费| 麻豆亚洲AV永久无码精品久久|