基于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 相关文章推荐
图片自动缩小的js代码,用以防止图片撑破页面
Mar 12 Javascript
类似GMAIL的Ajax信息反馈显示
Feb 16 Javascript
XENON基于JSON变种
Jul 27 Javascript
JS实现多物体缓冲运动实例代码
Nov 29 Javascript
微信中一些常用的js方法汇总
Mar 12 Javascript
JS实现霓虹灯文字效果的方法
Aug 06 Javascript
Javascript中的数据类型之旅
Oct 18 Javascript
jsp 自动编译机制详细介绍
Dec 01 Javascript
livereload工具实现前端可视化开发【推荐】
Dec 23 Javascript
微信网页授权并获取用户信息的方法
Jul 30 Javascript
javascript使用链接跨域下载图片
Nov 01 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
Feb 25 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
根德Grundig S400/S500/S700电路分析
2021/03/02 无线电
php隐藏IP地址后两位显示为星号的方法
2014/11/21 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
PHP引用的调用方法分析
2016/04/25 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
jQuery简单验证上传文件大小及类型的方法
2016/06/02 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
2016/11/22 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
2017/03/23 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
在vue项目中引用Iview的方法
2018/09/14 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
2019/04/16 Javascript
微信小程序中button去除默认的边框实例代码
2019/08/01 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
无法使用pip命令安装python第三方库的原因及解决方法
2018/06/12 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
2019/06/17 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
Python Lambda函数使用总结详解
2019/12/11 Python
numpy实现神经网络反向传播算法的步骤
2019/12/24 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
Kent & Curwen:与大卫·贝克汉姆合作
2017/06/13 全球购物
进程的查看和调度分别使用什么命令
2013/12/14 面试题
焊接专业毕业生求职信
2013/10/01 职场文书
医院办公室主任职责
2013/12/29 职场文书
幼儿园庆六一游园活动方案
2014/01/29 职场文书
综治宣传月活动总结
2014/04/28 职场文书
2015关于重阳节的演讲稿
2015/03/20 职场文书