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


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 相关文章推荐
jquery.cvtooltip.js 基于jquery的气泡提示插件
Nov 19 Javascript
Javascript实现关联数据(Linked Data)查询及注意细节
Feb 22 Javascript
jquery中push()的用法(数组添加元素)
Nov 25 Javascript
jQuery平滑旋转幻灯片特效代码分享
Sep 07 Javascript
JS基础随笔(菜鸟必看篇)
Jul 13 Javascript
对Js OOP编程 创建对象的一些全面理解
Jul 26 Javascript
JQ选择器_选择同类元素的第N个子元素的实现方法
Sep 08 Javascript
用Vue.js实现监听属性的变化
Nov 17 Javascript
详解Javascript数据类型的转换规则
Dec 12 Javascript
Vue.js中用v-bind绑定class的注意事项
Dec 13 Javascript
纯js的右下角弹窗实例
Mar 12 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
Sep 25 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 过滤页面中的BOM(实现代码)
2013/06/29 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
让焦点自动跳转
2006/07/01 Javascript
Prototype使用指南之hash.js
2007/01/10 Javascript
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
jquery 事件执行检测代码
2009/12/09 Javascript
JS 有名函数表达式全面解析
2010/03/19 Javascript
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
JavaScript匿名函数用法分析
2015/02/13 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
javascript实现获取图片大小及图片等比缩放的方法
2016/11/24 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
JavaScript实现放大镜效果代码示例
2020/04/29 Javascript
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
Python3实现转换Image图片格式
2018/06/21 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
django连接oracle时setting 配置方法
2019/08/29 Python
Python实现图像的垂直投影示例
2020/01/17 Python
python 将视频 通过视频帧转换成时间实例
2020/04/23 Python
Python参数传递对象的引用原理解析
2020/05/22 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
用CSS3的box-reflect来制作倒影效果
2016/11/15 HTML / CSS
SEPHORA丝芙兰德国官方购物网站:化妆品、护肤品和香水
2020/01/21 全球购物
酒店办公室文员岗位职责
2013/12/18 职场文书
幼儿园老师辞职信
2014/01/20 职场文书
法学专业求职信范文
2015/03/19 职场文书
pytorch 实现多个Dataloader同时训练
2021/05/29 Python
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android
阿里云服务器Ubuntu 20.04上安装Odoo 15
2022/05/20 Servers