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


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 相关文章推荐
解密效果
Jun 23 Javascript
url 编码 js url传参中文乱码解决方案
Apr 11 Javascript
jQuery的学习步骤
Feb 23 Javascript
用jquery写的一个万年历(自写)
Jan 20 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
Aug 05 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
Jul 09 Javascript
获取JavaScript异步函数的返回值
Dec 21 Javascript
JS中Array数组学习总结
Jan 18 Javascript
详解Angular调试技巧之报错404(not found)
Jan 31 Javascript
layui对工具条进行选择性的显示方法
Sep 19 Javascript
JavaScript如何使用插值实现图像渐变
Jun 28 Javascript
关于Javascript闭包与应用的详解
Apr 22 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中的float类型使用说明
2010/07/27 PHP
smarty简单应用实例
2015/11/03 PHP
Laravel手动分页实现方法详解
2016/10/09 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
javascript jQuery插件练习
2008/12/24 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
妙用Jquery的val()方法
2012/06/27 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
js中string转int把String类型转化成int类型
2014/08/13 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
详解Document.Cookie
2015/12/25 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
2017/07/03 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
2020/06/26 Javascript
JavaScript实现通讯录功能
2020/12/27 Javascript
[01:09]DOTA2次级职业联赛 - ishow.HMM战队宣传片
2014/12/01 DOTA
微信跳一跳游戏python脚本
2020/04/01 Python
python Selenium实现付费音乐批量下载的实现方法
2019/01/24 Python
python 内置函数汇总详解
2019/09/16 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
2019/10/25 Python
python flask中动态URL规则详解
2019/11/22 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
2020/06/18 Python
python操作redis数据库的三种方法
2020/09/10 Python
爱奇艺VIP会员:大剧抢先看
2018/07/11 全球购物
上海某公司.net方向笔试题
2014/09/14 面试题
职代会闭幕词
2015/01/28 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
升级 Win11 还是坚守 Win10?微软 Win11 新系统缺失功能大盘点
2022/04/05 数码科技
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技