基于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 相关文章推荐
ext checkboxgroup 回填数据解决
Aug 21 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
May 31 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
Nov 17 Javascript
jquery获取复选框checkbox的值实现方法
May 30 Javascript
给easyui datebox扩展一个清空的实例
Nov 09 Javascript
详解node+express+ejs+bootstrap构建项目
Sep 27 Javascript
解决easyui日期时间框ie的兼容的问题
Mar 01 Javascript
浅谈Angularjs中不同类型的双向数据绑定
Jul 16 Javascript
Javascript中的this,bind和that使用实例
Dec 05 Javascript
ES6 Object.assign()的用法及其使用
Jan 18 Javascript
详细分析vue表单数据的绑定
Jul 20 Javascript
layui使用及简单的三级联动实现教程
Dec 01 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
笑谈配置,使用Smarty技术
2007/01/04 PHP
PHP flush()与ob_flush()的区别详解
2013/06/03 PHP
Zend Framework页面缓存实例
2014/06/25 PHP
PHP中怎样防止SQL注入分析
2014/10/23 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
2014/11/12 PHP
深入了解javascript中的prototype与继承
2013/04/14 Javascript
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
js实现无需数据库的县级以上联动行政区域下拉控件
2013/08/14 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
javascript下拉列表菜单的实现方法
2015/11/18 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
JS实现类似百叶窗下拉菜单效果
2016/12/30 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
Python 将pdf转成图片的方法
2018/04/23 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
dpn网络的pytorch实现方式
2020/01/14 Python
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
护理专业毕业生自我鉴定
2013/10/08 职场文书
物流司机岗位职责
2013/12/28 职场文书
小学生竞选班长演讲稿
2014/04/24 职场文书
亮剑精神演讲稿
2014/05/23 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
会计岗位说明书
2014/07/29 职场文书
关于学习的决心书
2015/02/05 职场文书
历史博物馆观后感
2015/06/05 职场文书
成事在人观后感
2015/06/16 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
mysql字符串截取函数小结
2021/04/05 MySQL
Redis 持久化 RDB 与 AOF的执行过程
2021/11/07 Redis
Pygame Rect区域位置的使用(图文)
2021/11/17 Python