小程序实现正计时和倒计时
小程序实现正计时和倒计时
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 + ''}
小程序实现正计时和倒计时相关推荐
- 小程序iView Weapp实现一个倒计时
昨天把组件库 iView Weapp研究了一下,里面确实有很多不错的组件,对于组件的使用,也写了一下笔记:五分钟上手-微信小程序组件库 iView Weapp https://www.jianshu. ...
- 【Unity3D日常开发】Unity3D中实现计时器工具类-正计时、倒计时、暂停计时、加速计时
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...
- 小程序列表多个批量倒计时
修复更新-----2019-11-22 订单列表中倒计时-wxml <view wx:for="{{wearList.datetime}}" wx:for-item=&quo ...
- 微信小程序样式点击开始倒计时(正则规则验证)手机号验证
今天在开发的小程序过程中,遇到了一个发送验证码的需求,嗯嗯,大体的ui效果图如下所示! 点击号码的时候,我们点击获取验证码,开始倒计时的功能,首先我们申请一个变量check=true, tochang ...
- 微信小程序(手机登录60S倒计时+微信登录页面+限制时间次数频率)
1.这是效果图(js代码没有优化,封装一个request请求) 下面直接上代码 2.wxml代码 <view class="login-container"><v ...
- 微信小程序发送验证码60秒倒计时
wxml <view class="li-send" bindtap="onSend" wx:if="{{send}}">发送验 ...
- 微信小程序之验证码短信倒计时
最近做的一个项目里有一个收验证码的倒计时需求,mark出来~希望对小伙伴们有帮助 wxml <view class="checkPhone-box"><view ...
- 微信小程序 使用canvas画圆形倒计时动画
参考文档:https://www.cnblogs.com/quietxin/p/9418813.html 效果: wxml页面 <view class="container" ...
- 微信小程序实现一个简单的倒计时效果
WXML代码: <view class='countDown'>倒计时:<text style='color:red'>{{countDownNum}}</text> ...
最新文章
- 《javascript模式》 容易踩中的那些坑
- ASP.NET MVC 3 常用
- Android几秒后自动关闭dialog
- BZOJ 1491: [NOI2007]社交网络( floyd )
- 【python】有意思的python小项目GitHub地址汇总
- 项目助理这个工作怎么样_分析微信清理僵尸粉这个项目怎么样?
- 传感器怎么获取障碍物的宽度信息_机器人感知 -- 测距传感器
- 【数据结构与算法基础】队列、栈、递归
- Netapp存储控制器接管
- 软件公司的管理规范化了、编制都齐全了,一般小公司是承受不了的这么庞大的开支的...
- android从子页面跳转回主页面注意
- hutool工具类的使用,国内自己封装的工具包,挺好用的
- linux基础(十四)定时任务和管理系统的临时文件
- 图形学---中点画线法---opengl中实现
- Windows禁用端口(445端口为例)
- 【工具】Vscode翻译插件推荐(不用谷歌翻译api、支持短句英汉互译、支持查词、支持自动补全、不需要浏览器)
- mac版微信复制多个消息
- 算术移位 VS 逻辑移位
- 华为面试Android岗;群面+技术面+综合面+英语面
- 【技术分享】如何通过PPPOE拨号上网
热门文章
- itext使用字体问题
- ucos 时钟节拍_uC/OS-III 时钟节拍,时间管理,时间片调度
- php elasticsearch更新文档
- 关于Windows10右键新建卡顿
- Obsidian 插件(一):DataView 的使用
- OP向左,SaaS向右,如何选择?
- 计算机视觉最全专栏教程总结
- 合肥市直计算机知识pdf,事业单位计算机专业知识整理(全)-20210419115129.pdf-原创力文档...
- MySQL--找出每个部门薪水最高的员工 方法总结
- java操作跨页的word cell_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...