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

简介: 黯然微信小程序杂记(三):微信小程序实现倒计时功能 附讲解教学 附源码
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);
  },
})


相关文章
|
3月前
|
存储 JSON 小程序
微信小程序入门之新建并认识小程序结构
微信小程序入门之新建并认识小程序结构
63 1
|
12天前
|
移动开发 小程序 前端开发
几千怎么部署搭建校园服务平台,校园圈子论坛系统小程序搭建,校园系统源码,多种功能一体的综合性校园平台
校园圈子论坛是一款集交友、二手市场、聊天等多功能于一体的校园社交平台,支持App、小程序和H5三端交付。学生可处理闲置物品、结识新朋友,通过算法匹配兴趣相投的用户。平台提供分享邀请机制,支持自动绑定推荐关系,并设有奖励机制。开发过程中需注重数据安全与系统稳定性,确保功能兼容及性能优化。
55 5
|
12天前
|
移动开发 小程序 前端开发
使用php开发圈子系统特点,如何获取圈子系统源码,社交圈子运营以及圈子系统的功能特点,圈子系统,允许二开,免费源码,APP 小程序 H5
开发一个圈子系统(也称为社交网络或社群系统)可以是一个复杂但非常有趣的项目。以下是一些关键特点和步骤,帮助你理解如何开发、获取源码以及运营一个圈子系统。
84 3
|
16天前
|
小程序 安全 搜索推荐
陪玩小程序的搭建解析与功能需求
陪玩小程序是为玩家提供专业陪玩服务的应用,嵌入社交或游戏平台,具备智能匹配、实时聊天、预约服务等功能,支持便捷高效的游戏体验。源码交付时需提供详细文档、技术支持及定制开发服务,确保客户能顺利维护和升级。选择陪玩小程序时应关注功能需求、用户体验、安全性和成本效益,以确保最佳使用效果。
37 0
|
12天前
|
小程序 安全 网络安全
清晰易懂!陪玩系统源码搭建的核心功能,陪玩小程序、陪玩app的搭建步骤!
陪玩系统源码包含多种约单方式、实时语音互动、直播间与聊天室、大神申请与抢单、动态互动与社交及在线支付与评价等核心功能。搭建步骤包括环境准备、源码上传与解压、数据库配置、域名与SSL证书绑定、伪静态配置及后台管理。注意事项涵盖源码安全性、二次开发、合规性和技术支持。确保平台安全、合规并提供良好用户体验是关键。
|
2月前
|
小程序 数据挖掘 UED
开发1个上门家政小程序APP系统,都有哪些功能?
在快节奏的现代生活中,家政服务已成为许多家庭的必需品。针对传统家政服务存在的问题,如服务质量不稳定、价格不透明等,我们历时两年开发了一套全新的上门家政系统。该系统通过完善信用体系、提供奖励机制、优化复购体验、多渠道推广和多样化盈利模式,解决了私单、复购、推广和盈利四大痛点,全面提升了服务质量和用户体验,旨在成为家政行业的领导者。
|
3月前
|
存储 自然语言处理 小程序
微信小程序多语言切换神器:简繁体切换功能完全指南
随着全球化的发展,支持多种语言的应用程序愈发重要。本文介绍了如何在微信小程序中实现简体与繁体字体之间的切换功能,以满足不同地区用户的需求。通过创建utils文件夹并编写相应的转换函数,开发者可以方便地实现语言切换,从而提升用户体验。文章中还附带了示例代码和效果图,帮助读者更好地理解和应用这一功能。
124 0
微信小程序多语言切换神器:简繁体切换功能完全指南
|
3月前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
1284 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
3月前
|
小程序 Linux Python
查找首字母与Python相关的的英文词汇小程序的续篇---进一步功能完善
查找首字母与Python相关的的英文词汇小程序的续篇---进一步功能完善
31 1
|
4月前
|
算法 JavaScript 前端开发
切西瓜法实现微信抢红包功能
该文章介绍了使用“切西瓜法”和“栅栏法”两种算法来模拟微信抢红包的随机分配机制,并通过具体的JavaScript代码实现了红包金额的公平随机分配过程。
切西瓜法实现微信抢红包功能