从first页面进入index运动页后开始运动,倒计时开始,每隔一段时间换一张图,进入下一个运动
一组运动做完后,提示用户是否休息,如果选择休息,则回到first页面
如果选择继续运动,则重置数据,继续运动
<view class="container"><view><text>预备,开始!</text><text>{{index+1}}/{{runname.length}} {{runname[index]}}</text></view><image class='action' src='{{imglist[index]}}' mode='aspectFit'></image><view class='time'><text>{{count}}</text></view></view>
Page({data: {imglist: ["/assets/images/qs1.GIF", "/assets/images/qs2.GIF", "/assets/images/qs3.GIF","/assets/images/qs4.GIF"], //图片列表runname: ["呼啦圈", "举重", "跳绳", "哑铃"], //动作名称index: 0, //索引,记录到当前第几个count: 8, //每个动作持续时间,用来显示时间变化(s)total: 8, //每个动作持续时间,固定值(s)timer: null //定时器,当离开页面时需要清除定时器},changeTimer: function() {var that = this//判断如果已经做到最后一个动作if (this.data.index == this.data.imglist.length) {//给出提示,是重做运动,还是回到主页wx.showModal({title: '提示',content: '运动完成',confirmText:"休息一下",cancelText:"继续运动",success: function(res) {if (res.confirm) {clearTimeout(that.data.timer)that.setData({index: 0,count: that.data.total})wx.navigateTo({url: '/pages/first/first',})} else if (res.cancel) {//再做一遍,重置初始值that.setData({index:0},function(){that.changeTimer()})}}})} else {this.data.timer = setTimeout(() => {//时间递减this.setData({count: this.data.count -1})if (this.data.count <= 0) {//当时间到0,进入下一个动作this.setData({index: this.data.index + 1,count: that.data.total})this.changeTimer()} else {this.changeTimer()}}, 1000);}},/*** 生命周期函数‐‐监听页面显示*/onShow: function() {var that = this;this.setData({count: that.data.total})this.changeTimer()},/*** 生命周期函数‐‐监听页面隐藏*/onHide: function() {clearTimeout(this.data.timer)},/*** 生命周期函数‐‐监听页面卸载*/onUnload: function() {clearTimeout(this.data.timer)}})

