本文实例为大家分享了微信小程序实现计时器的具体代码,供大家参考,具体内容如下
微信小程序点击事件触发计时器
1.wxml
<view class="button" bindtap="open_modal">开始巡查</view> ? <!-- 弹出层 --> <view class="mask-bg" wx:if="{{showModal}}"></view> <view class="mask-item" wx:if="{{showModal}}"> ? ? <view class="mask-top-item"> ? ? ? ? <view class="mask-top-title">计时器</view> ? ? ? ? <image class="close-item-img" src="/images/task/close.png" bindtap="close"></image> ? ? </view> ? ? <view class="collect-time">{{showHour}}:{{showMin}}:{{showSec}}</view> ? ? <!-- <view class="divLine2"></view> --> ? ? <block wx:if="{{showStop}}"> ? ? ? ? <image class="start-img" src="/images/task/stop.png" bindtap="stop"></image> ? ? </block> ? ? <block wx:elif="{{!showStop}}"> ? ? ? ? <image class="start-img" src="/images/task/start.png" bindtap="start"></image> ? ? </block> ? ? <image class="bottom-bg" src="/images/task/bg.png"></image> </view>
2.js
var util = require('utils/util.js'); data: { ? ? showModal: false, ? ? showStop:false, ? ? //存储计时器 ? ? setInter: '', ? ? hour: 1, ? ? min: 1, ? ? sec: 1, ? ? showSec: "00", ? ? showMin: "00", ? ? showHour: "00" ? }, ? open_modal: function () { ? ? var that = this; ? ? that.setData({ ? ? ? showModal: true, ? ? }) ? }, ? // 开始计时 start: function () { ? ? var that = this; ? ? that.setData({ ? ? ? showStop: true ? ? }) ? ? wx.showToast({ ? ? ? title: '开始计时', ? ? ? duration: 1000, ? ? ? complete() { ? ? ? ? // 获取开始时间 ? ? ? ? var beginTime = util.formatTime(new Date()); ? ? ? ? console.log(beginTime) ? ? ? ? ? console.log("开始计时") ? ? ? ? //将计时器赋值给setInter ? ? ? ? that.data.setInter = setInterval( ? ? ? ? ? function () { ? ? ? ? ? ? if (that.data.sec != 60) { ? ? ? ? ? ? ? if (that.data.sec <= 9) { ? ? ? ? ? ? ? ? let showSec = '0' + that.data.sec ? ? ? ? ? ? ? ? that.setData({ ? ? ? ? ? ? ? ? ? showSec: showSec, ? ? ? ? ? ? ? ? ? sec: that.data.sec + 1, ? ? ? ? ? ? ? ? }) ? ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? that.setData({ ? ? ? ? ? ? ? ? ? showSec: that.data.sec, ? ? ? ? ? ? ? ? ? sec: that.data.sec + 1, ? ? ? ? ? ? ? ? }) ? ? ? ? ? ? ? } ? ? ? ? ? ? } else { ? ? ? ? ? ? ? if (that.data.min != 60) { ? ? ? ? ? ? ? ? // 60s 进 1min ? ? ? ? ? ? ? ? if (that.data.min <= 9) { ? ? ? ? ? ? ? ? ? let showMin = '0' + that.data.min ? ? ? ? ? ? ? ? ? that.setData({ ? ? ? ? ? ? ? ? ? ? sec: 0, ? ? ? ? ? ? ? ? ? ? showSec: "00", ? ? ? ? ? ? ? ? ? ? showMin: showMin, ? ? ? ? ? ? ? ? ? ? min: that.data.min + 1, ? ? ? ? ? ? ? ? ? }) ? ? ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? ? that.setData({ ? ? ? ? ? ? ? ? ? ? sec: 0, ? ? ? ? ? ? ? ? ? ? showSec: "00", ? ? ? ? ? ? ? ? ? ? showMin: that.data.min, ? ? ? ? ? ? ? ? ? ? min: that.data.min + 1, ? ? ? ? ? ? ? ? ? }) ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? // 60min 进 1hour ? ? ? ? ? ? ? ? if (that.data.hour != 24) { ? ? ? ? ? ? ? ? ? if (that.data.hour <= 9) { ? ? ? ? ? ? ? ? ? ? let showHour = '0' + that.data.hour ? ? ? ? ? ? ? ? ? ? that.setData({ ? ? ? ? ? ? ? ? ? ? ? min: 0, ? ? ? ? ? ? ? ? ? ? ? showMin: "00", ? ? ? ? ? ? ? ? ? ? ? showHour: showHour, ? ? ? ? ? ? ? ? ? ? ? hour: that.data.hour + 1, ? ? ? ? ? ? ? ? ? ? }); ? ? ? ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? ? ? that.setData({ ? ? ? ? ? ? ? ? ? ? ? min: 0, ? ? ? ? ? ? ? ? ? ? ? showMin: "00", ? ? ? ? ? ? ? ? ? ? ? showHour: that.data.hour, ? ? ? ? ? ? ? ? ? ? ? hour: that.data.hour + 1, ? ? ? ? ? ? ? ? ? ? }); ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? ? //24小时 ? ? ? ? ? ? ? ? ? var endTime = util.formatTime(new Date()); ? ? ? ? ? ? ? ? ? console.log(endTime) ? ? ? ? ? ? ? ? ? ? console.log("结束计时") ? ? ? ? ? ? ? ? ? //清除计时器 ?即清除setInter ? ? ? ? ? ? ? ? ? clearInterval(that.data.setInter); ? ? ? ? ? ? ? ? ? that.setData({ ? ? ? ? ? ? ? ? ? ? showModal: false, ? ? ? ? ? ? ? ? ? ? showStop: false, ? ? ? ? ? ? ? ? ? ? sec: 1, ? ? ? ? ? ? ? ? ? ? min: 1, ? ? ? ? ? ? ? ? ? ? hour: 1, ? ? ? ? ? ? ? ? ? ? showSec: "00", ? ? ? ? ? ? ? ? ? ? showMin: "00", ? ? ? ? ? ? ? ? ? ? showHour: "00" ? ? ? ? ? ? ? ? ? }) ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? ? }, 1000); ? ? ? } ? ? }); ? }, ? ? // 停止计时 ? stop: function () { ? ? var that = this; ? ? wx.showModal({ ? ? ? title: '提示', ? ? ? content: '是否确定退出', ? ? ? showCancel: true, ? ? ? cancelText: '继续', ? ? ? cancelColor: '#000000', ? ? ? confirmText: '确定退出', ? ? ? confirmColor: '#1677FF', ? ? ? success: (result) => { ? ? ? ? if (result.confirm) { ? ? ? ? ? // 获取结束时间 ? ? ? ? ? var endTime = util.formatTime(new Date()); ? ? ? ? ? console.log(endTime) ? ? ? ? ? ? console.log("结束计时") ? ? ? ? ? //清除计时器 ?即清除setInter ? ? ? ? ? clearInterval(that.data.setInter); ? ? ? ? ? that.setData({ ? ? ? ? ? ? showModal: false, ? ? ? ? ? ? showStop: false, ? ? ? ? ? ? sec: 1, ? ? ? ? ? ? min: 1, ? ? ? ? ? ? hour: 1, ? ? ? ? ? ? showSec: "00", ? ? ? ? ? ? showMin: "00", ? ? ? ? ? ? showHour: "00" ? ? ? ? ? }) ? ? ? ? } ? ? ? }, ? ? ? fail: () => {}, ? ? ? complete: () => {} ? ? }); ? ?? ? }, ? ? // 关闭模态框方法 ? close: function () { ? ? var that = this; ? ? // 判断点击关闭时状态 ? ? if (that.data.showStop) { ? ? ? //点击开始后关闭 ? ? ? that.stop_inspection(); ? ? } else if (!that.data.showStop) { ? ? ? // 没有开始就关闭 ? ? ? that.setData({ ? ? ? ? showModal: false, ? ? ? }) ? ? } ? },
3.wxss
.button { ? ? margin-top: 32rpx; ? ? width: 702rpx; ? ? height: 98rpx; ? ? background: #1677FF; ? ? border-radius: 8rpx; ? ? display: flex; ? ? align-items: center; ? ? justify-content: center; ? ? font-size: 36rpx; ? ? font-family: PingFangSC-Regular, PingFang SC; ? ? font-weight: 400; ? ? color: #FFFFFF; } ? .mask-bg { ? ? position: absolute; ? ? top: 0%; ? ? left: 0%; ? ? width: 100%; ? ? height: 100%; ? ? background-color: black; ? ? z-index: 1001; ? ? -moz-opacity: 0.7; ? ? opacity: 0.70; ? ? filter: alpha(opacity=70); } ? .mask-item { ? ? text-align: center; ? ? position: absolute; ? ? top: 24.5%; ? ? left: 8%; ? ? width: 84%; ? ? height: 55.5%; ? ? border-radius: 8rpx; ? ? /* opacity: 0.55; */ ? ? background-color: #FFFFFF; ? ? z-index: 1002; ? ? overflow: auto; ? ? display: flex; ? ? flex-direction: column; ? ? align-items: center; } ? .mask-top-item { ? ? height: 128rpx; ? ? width: 100%; ? ? background-color: #1677FF; ? ? z-index: 1003; ? ? display: flex; ? ? align-items: center; } ? .mask-top-title { ? ? width: 240rpx; ? ? height: 50rpx; ? ? font-size: 36rpx; ? ? font-family: PingFangSC-Medium, PingFang SC; ? ? font-weight: 500; ? ? color: #FFFFFF; ? ? margin-left: 200rpx; } ? .close-item-img { ? ? margin-left: 115rpx; ? ? width: 44rpx; ? ? height: 44rpx; } ? .collect-time { ? ? margin-top: 112rpx; ? ? width: 552rpx; ? ? height: 116rpx; ? ? display: flex; ? ? align-items: center; ? ? justify-content: center; ? ? font-size: 120rpx; ? ? font-family: ArialMT; } ? /* .divLine2 { ? ? margin-top: 42rpx; ? ? width: 524rpx; ? ? height: 2rpx; ? ? background: #DDDDDD; } */ ? .start-img { ? ? margin-top: 64rpx; ? ? height: 176rpx; ? ? width: 176rpx; } ? .bottom-bg{ ? ? width: 100%; ? ? height: 93rpx; ? ? position: absolute; ? ? bottom:0%; ? ? z-index: 1003; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did120967