基于vue、react实现倒计时效果


Posted in Javascript onAugust 26, 2019

本文实例为大家分享了基于vue、react实现倒计时效果的具体代码,供大家参考,具体内容如下

Vue

方案一:俩个元素

HTML:

<div id="example">
  <button @click="send">
   <span v-if="sendMsgDisabled">{{time+'秒后获取'}}</span>
   <span v-if="!sendMsgDisabled">send</span>
  </button>
</div>

JS:

var vm = new Vue({
  el: '#example',
  data() {
   return {
    time: 60, // 发送验证码倒计时
    sendMsgDisabled: false
   }
  },
  methods: {
   send() {
    let me = this;
    me.sendMsgDisabled = true;
    let interval = window.setInterval(function() {
     if ((me.time--) <= 0) {
      me.time = 60;
      me.sendMsgDisabled = false;
      window.clearInterval(interval); //停止
     }
    }, 1000);
   }
  }
 })

方案二:一个元素,改变文字

HTML:

<button type="button" @click='delusercache()' :disabled="sendMsgDisabled" v-text="btnText"></button>
//倒计时按钮禁用:disabled="sendMsgDisabled

JS:

var vm = new Vue({
  el: '#example',
  data() {
   return {
    time: 60, // 发送验证码倒计时
    sendMsgDisabled: false //按钮可用
   }
  },
  methods: {
   time(){
      this.sendMsgDisabled= true; //按钮不可用
      let interval = window.setInterval(()=> {
        this.btnText = this.time + 's重新发送'
        if ((this.time--) <= 0) {
          this.time = 120;
          this.btnText ='发送验证码'
          this.sendMsgDisabled= false; //按钮可用
          window.clearInterval(interval);
        }
      }, 1000);
    }
 })

React

引用块内容

time = () => {
    this.setState({ 
      times: this.state.times-1,
      btnText: '' + this.state.times + 's重新发送)',
      // discodeBtn: false,
      clearInterval:true
    })
    var siv = setInterval(() => {
      this.setState({ 
        times: this.state.times-1,
        btnText: '' + this.state.times + 's重新发送)',
        // discodeBtn: false,
        clearInterval:true
      }, () => {
        if (this.state.times === 0) {
          clearInterval(siv);
          this.setState({ 
            times: 60,
            btnText: '发送验证码', 
            // discodeBtn: true,
            clearInterval:false,
            phone:false,
            isDisabled:false
          })
        }
      });
    }, 1000);
  };
<button 
className={(this.state.clearInterval ? 'send-btn-disabled-m' : 'send-btn-default')} 
disabled={this.state.isDisabled} 
onClick={this.getPhone} >
{this.state.btnText}
</button>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript与函数式编程解释
Apr 27 Javascript
jquery 查找新建元素代码
Jul 06 Javascript
intro.js 页面引导简单用法 分享
Aug 06 Javascript
javascript用户注册提示效果的简单实例
Aug 17 Javascript
xmlhttp缓存清除的2种解决方法
Dec 13 Javascript
jQuery预加载图片常用方法
Jun 15 Javascript
Javascript中document.referrer隐藏来源的方法
Jan 16 Javascript
JavaScript代码执行的先后顺序问题
Oct 29 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
Dec 04 Javascript
使用Vuex解决Vue中的身份验证问题
Sep 28 Javascript
Vue文本模糊匹配功能如何实现
Jul 30 Javascript
vue使用transition组件动画效果的实例代码
Jan 28 Vue.js
tweenjs缓动算法的使用实例分析
Aug 26 #Javascript
JS实现利用闭包判断Dom元素和滚动条的方向示例
Aug 26 #Javascript
JS实现提示效果弹出及延迟隐藏的功能
Aug 26 #Javascript
小程序实现层叠卡片滑动效果
Aug 26 #Javascript
微信小程序 数据缓存实现方法详解
Aug 26 #Javascript
使用typescript构建Vue应用的实现
Aug 26 #Javascript
微信小程序实现手势滑动卡片效果
Aug 26 #Javascript
You might like
PHP 遍历XP文件夹下所有文件
2008/11/27 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
php生成验证码函数
2015/10/20 PHP
HTML页面登录时的JS验证方法
2014/05/28 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
2015/05/11 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
2016/12/07 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
Bootstrap按钮组简单实现代码
2017/03/06 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
2020/12/20 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
python 域名分析工具实现代码
2009/07/15 Python
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
python爬虫 urllib模块发起post请求过程解析
2019/08/20 Python
Python爬虫 urllib2的使用方法详解
2019/09/23 Python
Django项目创建及管理实现流程详解
2020/10/13 Python
解决使用Pandas 读取超过65536行的Excel文件问题
2020/11/10 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
全天然狗零食:Best Bully Sticks
2016/09/22 全球购物
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
linux面试题参考答案(11)
2016/11/26 面试题
大学军训自我鉴定
2013/12/15 职场文书
大学军训感言1500字
2014/03/09 职场文书
股份转让协议书
2014/04/12 职场文书
群众路线自我剖析材料
2014/10/08 职场文书
客服专员岗位职责
2015/02/10 职场文书
Idea连接MySQL数据库出现中文乱码的问题
2021/04/14 MySQL
windows下快速安装nginx并配置开机自启动的方法
2021/05/11 Servers