黯然微信小程序杂记(三):微信小程序实现倒计时功能 附讲解教学 附源码

简介: 黯然微信小程序杂记(三):微信小程序实现倒计时功能 附讲解教学 附源码
CSDN私信我,有关微信小程序的事情可以交流讨论,共同学习!

一、功能描述


微信小程序实现:

1 点击按钮A开始或停止倒计时,

2 点击按钮B重置,

3 输入框和按钮C实现倒计时时间设置。

二、界面展示


20190814204018686.png

三、test.wxml代码


<view class='time'>
    <text>{{time}}</text>
</view>
<button catchtap="changeFlag">A:{{start_flag?'停止专注':'开始专注'}}</button>
<button catchtap="clear">B:重置</button>
<input bindinput="bindTextInput" value='{{textValue}}'></input>
<button catchtap="set">C:确定</button>

四、test.js代码(注释很详细 很易懂)


var setTimer;//把时间函数变量设为全局
Page({
  data: {
    start_flag: false,//倒计时开始或暂停的flag
    timestamp: 5400,//倒计时的总共的秒数
    time: '90:00',//从timestamp转换成的‘xx:xx’格式的时间,用来显示在wxml页面
    textValue:0
  },
  changeFlag: function () {//点击A按钮
    this.setData({
      start_flag: !this.data.start_flag//把flag置为相反
    })
    if (this.data.start_flag == true) this.timer();//如果flag为true 开始倒计时函数timer()
    else {//否则即为停止,清除全局变量的计时函数,实现时间的停止
      clearInterval(setTimer);
    }
  },
  time_change: function (timestamp) {//时间戳转化成‘xx:xx’的可读形式
    var timem = 0, times = 0;
    timem = parseInt(timestamp / 60);
    times = ((timestamp % 60 < 10) ? ('0' + timestamp % 60) : timestamp % 60);
    return (timem + ':' + times);
  },
  //倒计时函数
  timer: function () {
    let promise = new Promise((resolve, reject) => {//ES6的语法,用就行,不需要看懂
      setTimer = setInterval(//时间循环函数
        () => {
          this.setData({//每隔一秒,时间戳-1,对应转化一次timestamp
            timestamp: this.data.timestamp - 1,
            time: this.time_change(this.data.timestamp - 1)
          })
          if (this.data.timestamp <= 0) {//如果时间为0,重置数据
            this.setData({
              timestamp: 5400,
              start_flag: false,
              time: '90:00'
            })
            resolve(setTimer)
          }
        }
        , 1000)
    })
    promise.then((setTimer) => {
      clearInterval(setTimer)
    })
  },
  clear: function () {//点击B按钮,重置并清除全局变量的计时函数
    this.setData({
      timestamp: 5400,
      start_flag: false,
      time: '90:00'
    })
    clearInterval(setTimer);
  },
  bindTextInput: function (event) {//绑定input框的数据
    this.setData({
      textValue: event.detail.value
    })
  },
  set: function () {//点击C按钮,重置倒计时时间数据
    this.setData({
      timestamp: this.data.textValue,
      start_flag: false,
      time: this.time_change(this.data.textValue)
    })
    clearInterval(setTimer);
  },
})


相关文章
|
存储 JSON 小程序
微信小程序入门之新建并认识小程序结构
微信小程序入门之新建并认识小程序结构
245 1
ly~
|
存储 供应链 小程序
除了微信小程序,PHP 还可以用于开发哪些类型的小程序?
除了微信小程序,PHP 还可用于开发多种类型的小程序,包括支付宝小程序、百度智能小程序、抖音小程序、企业内部小程序及行业特定小程序。在电商、生活服务、资讯、工具、娱乐、营销等领域,PHP 能有效管理商品信息、订单处理、支付接口、内容抓取、复杂计算、游戏数据、活动规则等多种业务。同时,在企业内部,PHP 可提升工作效率,实现审批流程、文件共享、生产计划等功能;在医疗和教育等行业,PHP 能管理患者信息、在线问诊、课程资源、成绩查询等重要数据。
ly~
354 6
|
11月前
|
存储 小程序 前端开发
微信小程序与Java后端实现微信授权登录功能
微信小程序极大地简化了登录注册流程。对于用户而言,仅仅需要点击授权按钮,便能够完成登录操作,无需经历繁琐的注册步骤以及输入账号密码等一系列复杂操作,这种便捷的登录方式极大地提升了用户的使用体验
3287 12
|
存储 自然语言处理 小程序
微信小程序多语言切换神器:简繁体切换功能完全指南
随着全球化的发展,支持多种语言的应用程序愈发重要。本文介绍了如何在微信小程序中实现简体与繁体字体之间的切换功能,以满足不同地区用户的需求。通过创建utils文件夹并编写相应的转换函数,开发者可以方便地实现语言切换,从而提升用户体验。文章中还附带了示例代码和效果图,帮助读者更好地理解和应用这一功能。
812 0
微信小程序多语言切换神器:简繁体切换功能完全指南
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
3453 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
小程序 Linux Python
查找首字母与Python相关的的英文词汇小程序的续篇---进一步功能完善
查找首字母与Python相关的的英文词汇小程序的续篇---进一步功能完善
147 2
|
移动开发 小程序 前端开发
|
小程序 前端开发 API
微信小程序 - 调用微信 API 回调函数内拿不到 this 问题(解决方案)
本文讨论了在微信小程序中调用API回调函数时无法获取到`this`上下文的问题,并提供了解决方案。在回调函数中,使用一个变量(如`that`)来保存当前的`this`引用,然后在回调内部使用这个变量来访问当前页面的数据和方法。
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
3286 7
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
3034 1