国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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
主站蜘蛛池模板: 一区二区三区在线 | 日韩一区二区三区四区不卡 | 在线国产高清 | 最新大黄网站免费 | 欧美精品在线免费观看 | 国产在线观看免费一级 | 亚洲欧美日韩成人一区在线 | 国产精品免费大片一区二区 | 国产手机精品自拍视频 | 在线中文高清资源免费观看 | 日本另类αv欧美另类aⅴ | 亚洲综合视频一区 | 亚洲欧洲精品成人久久曰 | 亚洲欧美视屏 | 8x国产在线观看 | 久久国语精品 | 日韩欧美在线综合网 | 欧美精品第二页 | 一本久道久久综合 | 亚洲精品乱码久久久久久v 亚洲精品免费观看 | 欧美日韩中文 | 亚洲视频入口 | 欧美午夜在线 | 欧美亚洲另类综合 | 亚洲综合欧美日本另类激情 | 欧日韩一区二区三区 | 精品国产a | 手机精品在线 | 成人国产精品久久久免费 | 日韩在线二区 | 一区二区三区高清 | 久久99精品久久久久久青青91 | 亚洲永久精品一区二区三区 | 小说区 亚洲 自拍 另类 | 亚洲经典一区 | 欧美日韩精选 | 欧美三页 | 日本不卡一区二区三区 最新 | 一区不卡在线观看 | 美女一丝不佳一级毛片大屁股 | 国产精品免费大片一区二区 |