Vue實現(xiàn)倒計時小功能
很多項目中都需要實現(xiàn)倒計時功能,例:發(fā)送驗證碼?,F(xiàn)在舉例實現(xiàn)一個簡單的倒計時按鈕功能。簡單布局,簡單操作,簡單效果,最主要的是思路和倒計時步驟理解?。?!
例、代碼如下:
要求:點擊提交按鈕倒計時五秒,倒計時期間輸入框和提交按鈕禁用,倒計時結(jié)束后輸入框和提交按鈕再變成正常狀態(tài)
1、先實現(xiàn)要求的html布局,添加點擊事件
<div>
<!-- disabled為true禁用 -->
輸入框:<input type="text" :disabled="istrue">
<button @click="addHandle" :disabled="istrue">提交</button>
<!-- 倒計時文字提示 -->
<p>{{this.txt}}</p>
</div>
2、點擊提交按鈕倒計時開始變禁用狀態(tài),定義一個計時器
<script>
export default {
data(){
return {
txt:'',
istrue:false,
inp:''
}
},
methods:{
addHandle(){
//定義n=5秒
let n=5
//定義定時器time
let time=setInterval(()=>{
//禁用
this.istrue=true
//改變倒計時文字提示
this.txt=n+'秒后提交'
n--
//如果n<0,清除定時器,禁用狀態(tài)取消,文字提示為空(不顯示)
if(n<0){
this.txt=""
this.istrue=false
clearInterval(time)
}
},1000)
}
}
}
</script>
思路步驟都寫在上方注釋里了,一個簡單的倒計時就這樣輕易實現(xiàn)了。
整體代碼:
<template>
<div>
<!-- disabled為true禁用 -->
輸入框:<input type="text" :disabled="istrue">
<button @click="addHandle" :disabled="istrue">提交</button>
<!-- 倒計時文字提示 -->
<p>{{this.txt}}</p>
</div>
</template>
<script>
export default {
data(){
return {
txt:'',
istrue:false,
inp:''
}
},
methods:{
addHandle(){
//定義n=5秒
let n=5
//定義定時器time
let time=setInterval(()=>{
//禁用
this.istrue=true
//改變倒計時文字提示
this.txt=n+'秒后提交'
n--
//如果n<0,清除定時器,禁用狀態(tài)取消,文字提示為空(不顯示)
if(n<0){
this.txt=""
this.istrue=false
clearInterval(time)
}
},1000)
}
}
}
</script>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue對Element中el-tab-pane添加@click事件無效問題解決
這篇文章主要給大家介紹了關(guān)于Vue對Element中el-tab-pane添加@click事件無效問題的解決辦法,文中通過圖文以及代碼示例介紹的非常詳細,需要的朋友可以參考下2023-07-07
vue?perfect-scrollbar(特定框架里使用非該框架定制庫/插件)
這篇文章主要為大家介紹了vue?perfect-scrollbar在特定框架里使用一款并非為該框架定制的庫/插件如何實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>2023-05-05
Vue 應(yīng)用中結(jié)合vux使用微信 jssdk的方法
今天小編就為大家分享一篇Vue 應(yīng)用中結(jié)合vux使用微信 jssdk的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
Vue項目部署在Spring Boot出現(xiàn)頁面空白問題的解決方案
這篇文章主要介紹了Vue項目部署在Spring Boot出現(xiàn)頁面空白問題的解決方案,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-11-11

