详解微信小程序用定时器实现倒计时效果


Posted in Javascript onApril 30, 2019

平常在微信小程序开发的时候,因项目的需求,倒计时必不可少,下面主要讲解定时器在微信小程序中的使用。

这里要先声明一点的就是,该篇主要实现倒计时功能,而且实现是时长较短的倒计时,其他的优化什么的不作主要考虑。

如果实现简单的60s倒计时效果,我们可直接使用setInterval即可,但是在微信小程序中,我们需要用微信小程序的语法,这时就会遇到一个难题,那就是怎么关闭定时器的问题,下面给出实例。

WXML代码

<view class='countDown'>倒计时:<text style='color:red'>{{countDownNum}}</text>s</view>

JS代码:

Page({
 /**
  * 页面的初始数据
  */
 data: {
  timer: '',//定时器名字
  countDownNum: '60'//倒计时初始值
 },
 
 onShow: function(){
  //什么时候触发倒计时,就在什么地方调用这个函数
  this.countDown();
 },
 
 countDown: function () {
  let that = this;
  let countDownNum = that.data.countDownNum;//获取倒计时初始值
  //如果将定时器设置在外面,那么用户就看不到countDownNum的数值动态变化,所以要把定时器存进data里面
  that.setData({
   timer: setInterval(function () {//这里把setInterval赋值给变量名为timer的变量
    //每隔一秒countDownNum就减一,实现同步
    countDownNum--;
    //然后把countDownNum存进data,好让用户知道时间在倒计着
    that.setData({
     countDownNum: countDownNum
    })
    //在倒计时还未到0时,这中间可以做其他的事情,按项目需求来
    if (countDownNum == 0) {
     //这里特别要注意,计时器是始终一直在走的,如果你的时间为0,那么就要关掉定时器!不然相当耗性能
     //因为timer是存在data里面的,所以在关掉时,也要在data里取出后再关闭
     clearInterval(that.data.timer);
     //关闭定时器之后,可作其他处理codes go here
    }
   }, 1000)
  })
 }
})

好了,这就是简单的倒计时实现过程,大家可复制代码到微信开发者工具去验证效果。

以上所述是小编给大家介绍的微信小程序用定时器实现倒计时效果详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js过滤数组重复元素的方法
Sep 05 Javascript
JavaScript的parseInt 取整使用
May 09 Javascript
最常用的12种设计模式小结
Aug 09 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
Sep 29 Javascript
jQuery解析Json实例详解
Nov 24 Javascript
整理Javascript基础语法学习笔记
Nov 29 Javascript
浅析Bootstrap缩略图组件与警示框组件
Apr 29 Javascript
Vue实现购物车功能
Apr 27 Javascript
JS获取子、父、兄节点方法小结
Aug 14 Javascript
微信小程序实现图片压缩
Dec 03 Javascript
JavaScript实现旋转木马轮播图
Mar 16 Javascript
微信小程序pinker组件使用实现自动相减日期
May 07 Javascript
TypeScript开发Node.js程序的方法
Apr 30 #Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
Apr 30 #Javascript
Javascript读取上传文件内容/类型/字节数
Apr 30 #Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
Apr 30 #Javascript
vue+web端仿微信网页版聊天室功能
Apr 30 #Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
Apr 29 #Javascript
详解iframe跨域的几种常用方法(小结)
Apr 29 #Javascript
You might like
php的zip解压缩类pclzip使用示例
2014/03/14 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
js计算任意值之间随机数的方法
2015/01/16 Javascript
javascript拖拽应用实例
2016/03/25 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
2016/07/14 Javascript
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
微信小程序如何获取用户手机号
2018/01/26 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
Node.js JSON模块用法实例分析
2019/01/04 Javascript
Vue实现简易计算器
2020/02/25 Javascript
pygame游戏之旅 添加碰撞效果的方法
2018/11/20 Python
python flask解析json数据不完整的解决方法
2019/05/26 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
Python实现自动访问网页的例子
2020/02/21 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
Python项目打包成二进制的方法
2020/12/30 Python
Python中的流程控制详解
2021/02/18 Python
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
2018/01/08 HTML / CSS
Html5之title吸顶功能
2018/06/04 HTML / CSS
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
个人自我鉴定怎么写
2013/10/28 职场文书
手机促销活动方案
2014/02/05 职场文书
2015年小学生国庆节演讲稿
2015/07/30 职场文书
大学生受助感言
2015/08/01 职场文书
教师节随笔
2015/08/15 职场文书
vue+element ui实现锚点定位
2021/06/29 Vue.js
Python 绘制多因子柱状图
2022/05/11 Python