小程序实现正计时和倒计时

1、正计时:

实现后的样式:

代码:

var timer; // 计时器Page({data: {seconds: 0,secondMax: 3599,timeMax:'60:00',maxTime:'60:00',actionMax:true,stopMaxTime:false,resetMax:false,time: '00:00',cost: 0,action:true,stopTime:false,reset:false,childName: [{ "name": '选项1', "active": true },{ "name": '选项2', "active": false },{ "name": "选项3", "active": false },{ "name": '选项4', "active": false }],active1:false,active2: true,active3: false,active4: true,active: 'Exercise-Program-choose-one'},cilckChild(e) {const that = this;let index = e.currentTarget.dataset.index;let childName = that.data.childName;for (let i = 0; i < childName.length; i++) {if (index == i) {childName[i].active = true;} else {childName[i].active = false;}}that.setData({ childName: childName })},onLoad: function (options) {},timing(e){this.setData({ action: !this.data.action, stopTime:false})timing(this)},stopTime(e) {console.log("现在的记录时间时长:" + this.data.seconds)this.setData({ stopTime: true, reset: true })},reset(e) {const that = this;if (!that.data.reset) {that.setData({ stopTime: true })} else {that.setData({ seconds: 0, action: !that.data.action })}},timingMax(e){this.setData({ actionMax: !this.data.actionMax, stopMaxTime: false })timingMax(this)},stopMaxTime(e){console.log("现在是记录的时间时长:",this.data.secondMax)this.setData({ stopMaxTime: true, resetMax: true })},resetMax(e) {const that = this;if (!that.data.resetMax) {that.setData({ stopMaxTime: true })} else {that.setData({ secondMax: 3600, actionMax: !that.data.actionMax })}},//正计时function timing(that) {var seconds = that.data.secondsif (seconds > 3600) {that.setData({time: '60:00'});return;}if (that.data.stopTime){if(!that.data.reset){that.setData({ seconds: 0, action: !that.data.action })return;}return;}setTimeout(function () {that.setData({seconds: seconds + 1});timing(that);}, 1000)formatSeconds(that)}function formatSeconds(that) {var mins = 0, hours = 0, seconds = that.data.seconds, time = ''if (seconds < 60) {} else if (seconds < 3600) {mins = parseInt(seconds / 60)seconds = seconds % 60} else {mins = parseInt(seconds / 60)seconds = seconds % 60hours = parseInt(mins / 60)mins = mins % 60}that.setData({// time: formatTime(hours) + ':' + formatTime(mins) + ':' + formatTime(seconds)time: formatTime(mins) + ':' + formatTime(seconds)});}function charging(that) {if (that.data.seconds < 600) {that.setData({cost : 1})}}

2、倒计时:

实现后的设计图:

代码片段:

var timer; // 计时器Page({data: {seconds: 0,secondMax: 3599,timeMax:'60:00',maxTime:'60:00',actionMax:true,stopMaxTime:false,resetMax:false,time: '00:00',cost: 0,action:true,stopTime:false,reset:false,childName: [{ "name": '选项1', "active": true },{ "name": '选项2', "active": false },{ "name": "选项3", "active": false },{ "name": '选项4', "active": false }],active1:false,active2: true,active3: false,active4: true,active: 'Exercise-Program-choose-one'},cilckChild(e) {const that = this;let index = e.currentTarget.dataset.index;let childName = that.data.childName;for (let i = 0; i < childName.length; i++) {if (index == i) {childName[i].active = true;} else {childName[i].active = false;}}that.setData({ childName: childName })},onLoad: function (options) {},timing(e){this.setData({ action: !this.data.action, stopTime:false})timing(this)},stopTime(e) {console.log("现在的记录时间时长:" + this.data.seconds)this.setData({ stopTime: true, reset: true })},reset(e) {const that = this;if (!that.data.reset) {that.setData({ stopTime: true })} else {that.setData({ seconds: 0, action: !that.data.action })}},timingMax(e){this.setData({ actionMax: !this.data.actionMax, stopMaxTime: false })timingMax(this)},stopMaxTime(e){console.log("现在是记录的时间时长:",this.data.secondMax)this.setData({ stopMaxTime: true, resetMax: true })},resetMax(e) {const that = this;if (!that.data.resetMax) {that.setData({ stopMaxTime: true })} else {that.setData({ secondMax: 3600, actionMax: !that.data.actionMax })}},
function timingMax(that) {var seconds = that.data.secondMaxif (seconds <= 0) {that.setData({timeMax: '00:00'});return;}if (that.data.stopMaxTime) {if (!that.data.resetMax) {that.setData({ secondMax: 3600, actionMax: !that.data.actionMax })return;}return;}setTimeout(function () {that.setData({secondMax: seconds - 1});timingMax(that);}, 1000)formatSecondsMax(that)}function formatSecondsMax(that) {var mins = 60, hours = 1, seconds = that.data.secondMax, timeMax = ''if (seconds < 60) {mins = parseInt(mins%60)} else if (seconds <= 3600) {mins = parseInt(seconds / 60)seconds = seconds % 60} else {mins = parseInt(seconds / 60)seconds = seconds % 60hours = parseInt(mins / 60)mins = mins % 60}console.log(formatTime(mins))console.log(formatTime(seconds))that.setData({// time: formatTime(hours) + ':' + formatTime(mins) + ':' + formatTime(seconds)timeMax: formatTime(mins) + ':' + formatTime(seconds)});}function formatTime(num) {if (num < 10)return '0' + numelsereturn num + ''}

小程序实现正计时和倒计时相关推荐

  1. 小程序iView Weapp实现一个倒计时

    昨天把组件库 iView Weapp研究了一下,里面确实有很多不错的组件,对于组件的使用,也写了一下笔记:五分钟上手-微信小程序组件库 iView Weapp https://www.jianshu. ...

  2. 【Unity3D日常开发】Unity3D中实现计时器工具类-正计时、倒计时、暂停计时、加速计时

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  3. 小程序列表多个批量倒计时

    修复更新-----2019-11-22 订单列表中倒计时-wxml <view wx:for="{{wearList.datetime}}" wx:for-item=&quo ...

  4. 微信小程序样式点击开始倒计时(正则规则验证)手机号验证

    今天在开发的小程序过程中,遇到了一个发送验证码的需求,嗯嗯,大体的ui效果图如下所示! 点击号码的时候,我们点击获取验证码,开始倒计时的功能,首先我们申请一个变量check=true, tochang ...

  5. 微信小程序(手机登录60S倒计时+微信登录页面+限制时间次数频率)

    1.这是效果图(js代码没有优化,封装一个request请求) 下面直接上代码 2.wxml代码 <view class="login-container"><v ...

  6. 微信小程序发送验证码60秒倒计时

    wxml <view class="li-send" bindtap="onSend" wx:if="{{send}}">发送验 ...

  7. 微信小程序之验证码短信倒计时

    最近做的一个项目里有一个收验证码的倒计时需求,mark出来~希望对小伙伴们有帮助 wxml <view class="checkPhone-box"><view ...

  8. 微信小程序 使用canvas画圆形倒计时动画

    参考文档:https://www.cnblogs.com/quietxin/p/9418813.html 效果: wxml页面 <view class="container" ...

  9. 微信小程序实现一个简单的倒计时效果

    WXML代码: <view class='countDown'>倒计时:<text style='color:red'>{{countDownNum}}</text> ...

最新文章

  1. 《javascript模式》 容易踩中的那些坑
  2. ASP.NET MVC 3 常用
  3. Android几秒后自动关闭dialog
  4. BZOJ 1491: [NOI2007]社交网络( floyd )
  5. 【python】有意思的python小项目GitHub地址汇总
  6. 项目助理这个工作怎么样_分析微信清理僵尸粉这个项目怎么样?
  7. 传感器怎么获取障碍物的宽度信息_机器人感知 -- 测距传感器
  8. 【数据结构与算法基础】队列、栈、递归
  9. Netapp存储控制器接管
  10. 软件公司的管理规范化了、编制都齐全了,一般小公司是承受不了的这么庞大的开支的...
  11. android从子页面跳转回主页面注意
  12. hutool工具类的使用,国内自己封装的工具包,挺好用的
  13. linux基础(十四)定时任务和管理系统的临时文件
  14. 图形学---中点画线法---opengl中实现
  15. Windows禁用端口(445端口为例)
  16. 【工具】Vscode翻译插件推荐(不用谷歌翻译api、支持短句英汉互译、支持查词、支持自动补全、不需要浏览器)
  17. mac版微信复制多个消息
  18. 算术移位 VS 逻辑移位
  19. 华为面试Android岗;群面+技术面+综合面+英语面
  20. 【技术分享】如何通过PPPOE拨号上网

热门文章

  1. itext使用字体问题
  2. ucos 时钟节拍_uC/OS-III 时钟节拍,时间管理,时间片调度
  3. php elasticsearch更新文档
  4. 关于Windows10右键新建卡顿
  5. Obsidian 插件(一):DataView 的使用
  6. OP向左,SaaS向右,如何选择?
  7. 计算机视觉最全专栏教程总结
  8. 合肥市直计算机知识pdf,事业单位计算机专业知识整理(全)-20210419115129.pdf-原创力文档...
  9. MySQL--找出每个部门薪水最高的员工 方法总结
  10. java操作跨页的word cell_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...