基于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 打印页面代码
Mar 24 Javascript
基于jQuery的日期选择控件
Oct 27 Javascript
Jquery判断IE6等浏览器的代码
Apr 05 Javascript
js实现跨域的4种实用方法原理分析
Oct 29 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
Feb 16 Javascript
js基本算法:冒泡排序,二分查找的简单实例
Oct 08 Javascript
JQueryEasyUI之DataGrid数据显示
Nov 23 Javascript
jQuery实现输入框的放大和缩小功能示例
Jul 21 jQuery
JS实现的input选择图片本地预览功能示例
Aug 29 Javascript
Angular事件之不同组件间传递数据的方法
Nov 15 Javascript
Vue.js实现的购物车功能详解
Jan 27 Javascript
js实现无刷新监听URL的变化示例代码详解
Jun 03 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提取中文首字母
2008/04/09 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
2019/05/29 PHP
PHP封装请求类实例分析【基于Yii框架】
2019/10/17 PHP
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
2011/11/30 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
2017/01/19 Javascript
Form表单上传文件(type=&quot;file&quot;)的使用
2017/08/03 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
JQuery Ajax如何实现注册检测用户名
2020/09/25 jQuery
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
python使用PIL缩放网络图片并保存的方法
2015/04/24 Python
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
python递归实现快速排序
2018/08/18 Python
python将excel转换为csv的代码方法总结
2019/07/03 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
世界顶级足球门票网站:Live Football Tickets
2017/10/14 全球购物
Lookfantastic葡萄牙官方网站:欧洲第一大化妆品零售商
2018/03/17 全球购物
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
金融专业个人求职信
2013/09/22 职场文书
工业学校毕业生自荐书
2014/01/03 职场文书
最新结婚典礼主持词
2014/03/14 职场文书
2014年圣诞节促销方案
2014/03/14 职场文书
公司安全管理制度范本
2015/08/05 职场文书
小学毕业教师寄语
2019/06/21 职场文书
python实现网络五子棋
2021/04/11 Python
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript