微信小程序实现倒计时60s获取验证码
网络编程 2021-07-04 18:33www.168986.cn编程入门
这篇文章主要为大家详细介绍了微信小程序实现倒计时60s获取验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了微信小程序倒计时获取验证码的具体代码,供大家参考,具体内容如下
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.s() 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 } / 停止倒计时 / s() { 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 '../../ponents/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, }) }, }) }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
上一篇:微信小程序删除处理详解
下一篇:微信小程序实现根据字母选择城市功能
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程