基于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 相关文章推荐
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
Jun 19 Javascript
javascript中动态加载js文件多种解决办法总结
Nov 15 Javascript
javascript实现控制浏览器全屏
Mar 30 Javascript
JS获取表格内指定单元格html内容的方法
Mar 31 Javascript
轻松实现js选项卡切换效果
Sep 24 Javascript
JS字符串按逗号和回车分隔的方法
Apr 25 Javascript
react native实现往服务器上传网络图片的实例
Aug 07 Javascript
node 利用进程通信实现Cluster共享内存
Oct 27 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
Sep 04 Javascript
vue项目中跳转到外部链接的实例讲解
Sep 20 Javascript
vue的for循环使用方法
Feb 12 Javascript
在vue中使用console.log无效的解决
Aug 09 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面试题集锦
2012/03/08 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
PHP实现的观察者模式实例
2017/06/21 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
JavaScript 匿名函数(anonymous function)与闭包(closure)
2011/10/04 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
JS实现当前页居中分页效果的方法
2015/06/18 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
jQuery滚动加载图片实现原理
2015/12/14 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
JavaScript类的写法
2016/09/17 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
element el-table表格的二次封装实现(附表格高度自适应)
2021/01/19 Javascript
Python实现嵌套列表去重方法示例
2017/12/28 Python
python实现一个简单的udp通信的示例代码
2019/02/01 Python
python实现列表的排序方法分享
2019/07/01 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
Python flask框架端口失效解决方案
2020/06/04 Python
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
公司道歉信范文
2014/01/09 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
2015年老干部工作总结
2015/04/23 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
如何用python绘制雷达图
2021/04/24 Python
Python基于Opencv识别两张相似图片
2021/04/25 Python
CSS filter 有什么神奇用途
2021/05/25 HTML / CSS
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android
JAVA SpringMVC实现自定义拦截器
2022/03/16 Python