前提:因为一页有两个按钮要做倒计时,且时间、内容不一,就稍微改动了下代码,写了下函数形式,比较方便,比较适应变数
(以下是vue背景下)
HTML:
*4.短信验证码
{{sendModel.btnMsg == null ? sendModel.countNum+'s后可重新发送' : sendModel.btnMsg}}
JS:
data: {sms: "",sendModel: { // 短信验证码信息countNum: 60,countFlag: false, intervalBtn: {}, // 定时器btnMsg: '获取验证码' },
},methods: {// 倒计时countDown(value, time) {value.btnMsg = nullvalue.countFlag = !value.countFlag // 更改btn状态// 设置倒计时value.intervalBtn = setInterval(() => {if (value.countNum <= 0) {value.btnMsg = '获取验证码'clearInterval(value.intervalBtn) // 清除定时器value.countFlag = !value.countFlagvalue.countNum = time};// 倒计时value.countNum--}, 1000)},getSms() {const value = this.sendModel;this.countDown(value, 60); // 对接接口// ...},
}