基于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下的keyCode键码值表
Apr 10 Javascript
jquery BS,dialog控件自适应大小
Jul 06 Javascript
jQuery hover 延时器实现代码
Mar 12 Javascript
Javascript的&amp;&amp;和||的另类用法
Jul 23 Javascript
js获取checkbox复选框选中的选项实例
Aug 24 Javascript
JavaScript插件化开发教程 (一)
Jan 27 Javascript
Bootstrap按钮下拉菜单组件详解
May 10 Javascript
jQuery实现的网格线绘制方法
Jun 20 Javascript
vue 标签属性数据绑定和拼接的实现方法
May 17 Javascript
vue实现底部菜单功能
Jul 24 Javascript
如何利用ES6进行Promise封装总结
Feb 11 Javascript
vue axios重复点击取消上一次请求封装的方法
Jun 19 Javascript
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合并数组函数array_merge用法分析
2017/02/17 PHP
php中类和对象:静态属性、静态方法
2017/04/09 PHP
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
如何在一个页面显示多个百度地图
2013/04/07 Javascript
一个js控制的导航菜单实例代码
2013/12/03 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
javascript中一些util方法汇总
2015/06/10 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
JQuery对ASP.NET MVC数据进行更新删除
2016/07/13 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
JavaScript使用Range调色及透明度实例
2016/09/25 Javascript
JavaScript下拉菜单功能实例代码
2017/03/01 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
2017/05/04 jQuery
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
Vue 递归多级菜单的实例代码
2019/05/05 Javascript
jQuery插件simplePagination的使用方法示例
2020/04/28 jQuery
详解Swift中属性的声明与作用
2016/06/30 Python
python学习基础之循环import及import过程
2018/04/22 Python
Python基于xlrd模块操作Excel的方法示例
2018/06/21 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
python文本数据处理学习笔记详解
2019/06/17 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
如何通过python计算圆周率PI
2020/11/11 Python
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
自荐书模板
2013/12/19 职场文书
写好自荐信的几个要点
2013/12/26 职场文书
办理暂住证介绍信
2014/01/11 职场文书
商场周年庆活动方案
2014/08/19 职场文书
2014年销售部工作总结
2014/12/01 职场文书
利用python进行数据加载
2021/06/20 Python
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL