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

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


相关文章
|
小程序 前端开发 Android开发
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
2849 29
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
|
缓存 小程序 前端开发
商城/点餐/家政类小程序源码合集_微信抖音小程序源码开发从入门到精通实战
本文系统讲解如何利用现有源码快速开发商城、点餐、家政类微信/抖音小程序,涵盖环境搭建、核心功能实现、多平台部署与优化,提供完整技术方案。实战导向,助力开发者高效入门与落地。
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
JSON 监控 小程序
微信百度字节小程序包过大解决方案(实战经验总结)-优雅草卓伊凡|果果|小无
微信百度字节小程序包过大解决方案(实战经验总结)-优雅草卓伊凡|果果|小无
1998 14
微信百度字节小程序包过大解决方案(实战经验总结)-优雅草卓伊凡|果果|小无
|
存储 移动开发 小程序
校园圈子系统小程序(圈子论坛、私信聊天、资料共享、二手交易、兼职,跑腿)开源码开发/微信公众号、小程序、H5多端账号同步/搭建多城市的综合社交生活平台
基于开源技术栈构建的校园圈子系统小程序,整合社交与生活服务功能,涵盖兴趣圈子、私信聊天、资料共享、二手交易、兼职跑腿等六大核心模块。通过多端账号同步(微信公众号/小程序/H5),实现数据实时交互,满足学生群体的多元化需求。项目精准锚定校园市场,以“社交+服务”双轮驱动,提供一站式解决方案,支持快速部署与多校区运营,同时具备广告、佣金、会员等多元变现能力,是打造校园生态的理想工具。
1878 3
校园圈子系统小程序(圈子论坛、私信聊天、资料共享、二手交易、兼职,跑腿)开源码开发/微信公众号、小程序、H5多端账号同步/搭建多城市的综合社交生活平台
|
小程序 JavaScript Java
基于SpringBoot的智慧停车场微信小程序源码分享
智慧停车场微信小程序主要包含管理端和小程序端。管理端包括停车场管理,公告信息管理,用户信息管理,预定信息管理,用户反馈管理等功能。小程序端包括登录注册,预约停车位,停车导航,停车缴费,用户信息,车辆信息,钱包充值,意见反馈等功能。
1290 5
基于SpringBoot的智慧停车场微信小程序源码分享
|
小程序 Java 关系型数据库
weixin116大学生就业平台微信小程序+ssm(文档+源码)_kaic
本文介绍了一款大学生就业平台微信小程序的开发过程,涵盖开发环境、系统设计、实现与测试等方面。该小程序基于微信平台特性,采用MYSQL数据库存储数据,确保系统稳定与安全,同时满足学生、企业和管理员不同权限用户的功能需求。通过简化操作流程,实现了招聘信息查看、简历投递等实用功能,旨在为用户提供便捷高效的求职体验,符合“操作简单,功能实用”的设计理念。
|
小程序 Java 关系型数据库
weixin163基于微信小程序的校园二手交易平台系统设计与开发ssm(文档+源码)_kaic
本文介绍了一款基于微信小程序的校园二手物品交易平台的开发与实现。该平台采用Java语言开发服务端,使用MySQL数据库进行数据存储,前端以微信小程序为载体,支持管理员和学生两种角色操作。管理员可管理用户、商品分类及信息、交易记录等,而学生则能注册登录、发布购买商品、参与交流论坛等。系统设计注重交互性和安全性,通过SSM框架优化开发流程,确保高效稳定运行,满足用户便捷交易的需求,推动校园资源共享与循环利用。
|
小程序 关系型数据库 Java
weixin168“返家乡”高校暑期社会实践微信小程序设计与开发ssm(文档+源码)_kaic
本文探讨高校暑期社会实践微信小程序的开发与应用,旨在通过信息化手段提升活动管理效率。借助微信小程序技术、SSM框架及MySQL数据库,实现信息共享、流程规范和操作便捷。系统涵盖需求分析、可行性研究、设计实现等环节,确保技术可行、操作简便且经济合理。最终,该小程序可优化活动发布、学生信息管理和心得交流等功能,降低管理成本并提高工作效率。