微信小程序 写一个获取验证码 及setInterval 使用基本方法
<!--index.wxml-->
<view class="container">
<view class="container_content"> <view class="content_time">{{time}}S</view> <view class="content_btn">
<button class="btn_start" bindtap="startTap">开始</button>
<button class="btn_stop" bindtap="stopTap">停止</button>
<button class="btn_restart" bindtap="restartTap">重新开始</button>
</view> </view>
</view>
/**index.wxss**/
.container {
height: 100%;
width: 100%;
padding:;
margin:;
}
.container_content {
height: 100%;
width: 100%;
margin-top:40%;
text-align: center;
} .content_time {
color: forestgreen;
font-size: 50rpx;
} .btn_start {
width: 30%;
text-align: center;
background-color: green;
} .btn_stop {
width: 30%;
text-align: center;
background-color: red;
} .btn_restart {
width: 30%;
text-align: center;
background-color: darkcyan;
}
//index.js
Page({
    data: {
      time: 60,         //初始时间
      interval: ""      //定时器
    },
   /**
     * 开始倒计时
    */
   startTap:function () {
      var that = this;
      that.init(that);          //这步很重要,没有这步,重复点击会出现多个定时器
      var time = that.data.time;
      console.log("倒计时开始")
      var interval = setInterval(function () {
         time--;
         that.setData({
            time: time
         })
            if (time==0){           //归0时回到60
            that.restartTap();
            }
      },100)
      that.setData({
         interval:interval
      })
   },
   /**
     * 暂停倒计时
    */
   stopTap:function () {
      var that = this;
      console.log("倒计时暂停")
      that.clearTimeInterval(that)
   },
   /**
     * 重新倒计时
    */
   restartTap:function () {
      var that = this;
      that.init(that);
      console.log("倒计时重新开始")
      that.startTap()
   },
   /**
     * 初始化数据
    */
   init: function (that) {
        var time = 60;
      var interval = ""
      that.clearTimeInterval(that)
      that.setData({
            time: time,
         interval: interval,
        })
   },
   /**
     * 清除interval
    * @param that
    */
   clearTimeInterval: function (that) {
      var interval = that.data.interval;
      clearInterval(interval)
    },
   /**
     * 生命周期函数--监听页面卸载
     * 退出本页面时停止计时器
    */
   onUnload:function () {
        var that = this;
        that.clearTimeInterval(that)
   },
   /**
     * 生命周期函数--监听页面隐藏
     * 在后台运行时停止计时器
    */
   onHide:function () {
        var that = this;
        that.clearTimeInterval(that)
   }
})
--------------------- 
作者:平凡V之路 
来源:CSDN 
原文:https://blog.csdn.net/qq_36221503/article/details/79732381 
版权声明:本文为博主原创文章,转载请附上博文链接!
微信小程序 写一个获取验证码 及setInterval 使用基本方法的更多相关文章
- 微信小程序 功能函数  获取验证码*
		yanZhengInput: function (e) { var that = this; var yanzheng = e.detail.value; var huozheng = this.da ... 
- 微信小程序 写音乐播放器 slider组件 将value设置为0 真机测试滑块不能回到起点
		最近在用微信小程序写一个音频播放页面,做时间进度的时候用到了slider插件,但是在自然播放完成,或者上/下切换的时候,将slider的value属性值设为0,开发工具上滑块会回到起点,有效.但是真机 ... 
- 微信小程序之动态获取元素宽高
		我以前一直以为微信小程序不能动态获取view元素的宽高.但是自从看到: wx.createSelectorQuery() 这个api接口,以前的某些问题就能得到解决了... 那么,这个api接口怎么用 ... 
- 微信小程序案例:获取微信访问用户的openid
		在微信开发项目中,获取openid是项目常遇的问题,本文通过主要讲解实现在微信小程序中如何获取用户的openid,案例实现非常简单 具体实现方法是通过登录接口获取登录凭证,然后通过request请求微 ... 
- 微信小程序发布一个月,世界并没有什么不同
		从某种意义上说,在张小龙身上,最可怕的事情莫过于微信小程序发布一个月,一开始的大红大紫居然渐归沉寂,曾经的风光无限已无人谈起,世界并没有什么不同. 这真像一场噩梦,一切都可怕地颠倒了.一款微信的战略级 ... 
- [技术博客] 微信小程序的formid获取
		微信小程序的formid获取 formId的触发 微信小程序可以通过收集用户的formid,获取formid给用户主动推送微信消息.获取formid有两个途径,一个是触发一次表单提交,或者触发一次支付 ... 
- 让微信小程序每次请求的时候不改变session_id的方法
		让微信小程序每次请求的时候不改变session_id的方法 每次微信小程序请求的时候都会改变session id, 还好他的请求方法内可以设置header头 所以只需要在启动程序后第一次请求服务器获得 ... 
- 用微信小程序做一个小电商 sku
		效果展示图 功能点概述 图一功能点有 搜索 轮播图 商品展示 图二功能点 导航栏 加入购物车 图四功能点 评论点 图五购物车 复选框 ( 全选全不选 ) 即点即改 总计结算 功能详解 1.A(搜索) ... 
- uni-app开发经验分享二十: 微信小程序 授权登录 获取详细信息 获取手机号
		授权页面 因为微信小程序提供的 权限弹窗 只能通用户确认授权 所以可以 写一个授权页面,让用户点击 来获取用户相关信息 然后再配合后台就可以完成登录 <button class="bt ... 
随机推荐
- Centos7 下 tty2等文字窗口的中文乱码问题分析
			在使用 tty 的时候遇到了一个事情,那就是主文件夹下面的中文文件是乱码: [备注]tty 是 通过 CTRL + ALT +F2~F6 获得的, 这与桌面系统中的终端不是一个概念, 望看到这篇 ... 
- 优雅地实现CSS Animation delay
			今天写一个css动画时遇到一个有意思的问题,记录如下: 1.需求: 等待元素A的动画加载完,再加载B元素的动画(下图中A为大熊猫,B为下方卡片) 先来看下最后的效果啦: 2.初始思路: 在B元素的动画 ... 
- c# xml操作(一)
			c# xml操作(一) 此博文包含图片 (-- ::)转载▼ 标签: 杂谈 分类: c# 同样是增,删,改,查四种操作.现在我们就详细介绍一下增和删两种操作.看下面的一个xml示例: <?xml ... 
- Spring_JDBC
			//User实体类 package com.tao.pojo; public class User { private int id; private String name; private Str ... 
- MFC中List box的用法
			首先在头文件中创建对象,CSGrid m_proViewList;//创建表头#pragma region 建立grid表的标题 m_proViewList.AppendColumn(_T(" ... 
- bzoj2281 [Sdoi2011]黑白棋
			一眼$nimk$游戏,后来觉得不对劲,看了黄学长博客发现真的不是$nimk$. 就当是$nimk$做吧,那么我们要保证每一位上一的个数都是$d+1$的倍数. $dp$:$f[i][j]$表示从低到高第 ... 
- BZOJ_2039_[2009国家集训队]employ人员雇佣_ 最小割
			BZOJ_2039_[2009国家集训队]employ人员雇佣_ 最小割 Description 作为一个富有经营头脑的富翁,小L决定从本国最优秀的经理中雇佣一些来经营自己的公司.这些经理相互之间合作 ... 
- BZOJ_2298_[HAOI2011]problem a_线段树
			BZOJ_2298_[HAOI2011]problem a_线段树 Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话( ... 
- CentOS7 安装Redis 单机版
			1,下载Redis4.0.9 进入Redis中文网的下载页面 http://www.redis.cn/download.html 2,上传压缩包到linux系统 cd /user/local/java ... 
- Win10安装cygwin并添加apt-cyg
			1.去Cygwin官网:https://www.cygwin.com/ 进入上图的install链接(下图),根据自己的电脑选择32位还是64位 我选择了一个32位的: 一直下一步下图: 163镜像链 ... 
