uniapp微信小程序实现一个页面多个倒计时


Posted in Javascript onNovember 01, 2020

本文实例为大家分享了uniapp实现一个页面多个倒计时的具体代码,供大家参考,具体内容如下

设计图(需求)

uniapp微信小程序实现一个页面多个倒计时

结构

<view class="group-list" v-for="item in message" :key="item.productId">
 <view class="group-img" @click="navTo">
 <image :src="item.productPicture"></image>
 </view>
 <view class="group-info">
 <view class="product-name">{{ item.productName }}</view>
 <view class="product-price">
 <text class="discounts">¥{{ item.productCurrentPrice }}</text>
 <text class="original">¥{{ item.productMarketPrice }}</text>
 </view>
 <view class="group-partner">
 <scroll-view scroll-x>
 <view class="user-img">
 <view v-for="(single, index) in item.avatarList" :key="index">
 <image :src="single"></image>
 </view>
 <view v-for="i in item.stillMissingNumber" :key="i">
 <image src="../../static/ssll-img/more.png"></image>
 </view>
 </view>
 </scroll-view>
 <button open-type="share">邀请好友</button>
 </view>
 <view class="clock">
 <text>拼团剩余:</text>
 <!-- 绑定倒计时 -->
 <text>{{ item.end_time1 }}</text> 
 </view>
 </view>
</view>

js

export default {
 data() {
 return {
 timeData: '', //存放每条数据的处理好的倒计时
 timer: '', //用来清除定时器
 message: [] //接口请求返回的数据
 }
 },
 onUnload(){ //卸载页面清除定时器
 clearInterval(this.timer) 
 },
 methods: {
 getTimeList(){ 
 let that = this
 that.message.forEach((item) =>{
  var nowdate = new Date().getTime() //获取当前时间毫秒数
  var time = item.productExpiredTime.replace(new RegExp("-", "gm"), "/") //ios不能识别日期格式中的 "-" ; .productExpiredTime是接口返回的名称
  var timesp = time.split('.')[0] //此处是因为我们接口返回的时间格式是这样:"2019-12-31 11:00:00.0"
  var enddate = new Date(timesp).getTime() //处理好格式之后获取结束时间的毫秒数
  var totaltime = enddate - nowdate //获取时间差
  that.totaltime(totaltime) //这是下面封装的方法,将毫秒数处理成"xx时xx分xx秒"
  item.end_time1 = that.timeData //处理好的单个时间安排到item上(重要)
 })
 this.message = that.message //全部处理好的数据重新赋值
 },
 
 totaltime(a){ //计算单个剩余时间
 let totaltime = a
 let that = this
  var h, m, s, d
  function test(num) {
  if (num < 10) {
   num = "0" + num 
  }
  return num
  }
  
 if (totaltime > 0) {
  d = Math.floor(totaltime / 1000 / 60 / 60 / 24) * 24
  h = Math.floor(totaltime / 1000 / 60 / 60 % 24)
  m = Math.floor(totaltime / 1000 / 60 % 60)
  s = Math.floor(totaltime / 1000 % 60)
  //获取时分秒
  h = d + h
  h = test(h)
  m = test(m)
  s = test(s)
  
  this.timeData =`${h}时 : ${m}分 : ${s}秒` // 每个时间的显示格式
  
 } else {
  
  this.timeData = `00 : 00 : 00` 
  
 }
 },
 //以下请求此页面需要的数据
 getUserGroupList(接口参数) {
 this.$ajax({
 url: 'xxx/xxx/xxxxxx',
 data: {接口参数},
 success: res => {
 var that = this
 let data = res.data.groups
 if (data.length === 0) {
 this.$api.msg('暂时您还没有参团信息!')
 setTimeout (function() {
 uni.navigateBack({ //返回上一页
  delta: 1
 })
 },1500)
 } else {
 this.message = [...that.message, ...res.data.groups] //合并
 //数据返回成功之后再调计时器,防止异步
 //that.getTimeList()
 var timer = setInterval(function () {
  that.getTimeList()
 }, 1000)
 this.timer = timer
 }
 }
 }
}

至此,一个页面多个倒计时就完成了, 记录学习。

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
关于eval 与new Function 到底该选哪个?
Apr 17 Javascript
JavaScript实现简单的时钟实例代码
Nov 23 Javascript
js匿名函数的调用示例(形式多种多样)
Aug 20 Javascript
jQuery基于muipicker实现仿ios时间选择
Feb 22 Javascript
基于jquery实现ajax无刷新评论
Aug 19 Javascript
温习Javascript基础语法之词法结构
May 31 Javascript
详解Vue 动态添加模板的几种方法
Apr 25 Javascript
vue2.0与bootstrap3实现列表分页效果
Nov 28 Javascript
vue-rx的初步使用教程
Sep 21 Javascript
vue组件从开发到发布的实现步骤
Nov 11 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
Jan 08 Javascript
JavaScript实现下拉列表
Jan 20 Javascript
uni-app使用countdown插件实现倒计时
Nov 01 #Javascript
uni-app实现获取验证码倒计时功能
Nov 01 #Javascript
uniapp电商小程序实现订单30分钟倒计时
Nov 01 #Javascript
详解JavaScript之Array.reduce源码解读
Nov 01 #Javascript
微信小程序实现星星评分效果
Nov 01 #Javascript
Express 配置HTML页面访问的实现
Nov 01 #Javascript
ant design vue 表格table 默认勾选几项的操作
Oct 31 #Javascript
You might like
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
js报错 Object doesn't support this property or method的原因分析
2011/03/31 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
Jquery中显示隐藏的实现代码分析
2011/07/26 Javascript
jquery插件开发方法(初学者)
2012/02/03 Javascript
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
2014/12/08 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
基于JavaScript获取base64图片大小
2019/10/18 Javascript
微信小程序swiper使用网络图片不显示问题解决
2019/12/13 Javascript
ES11屡试不爽的新特性,你用上了几个
2020/10/21 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
Python实现破解猜数游戏算法示例
2017/09/25 Python
python多进程实现文件下载传输功能
2018/07/28 Python
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
程序集与命名空间有什么不同
2014/07/25 面试题
施工材料员岗位职责
2014/02/12 职场文书
党员查摆剖析材料
2014/10/10 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
2014年老干部工作总结
2014/11/21 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
2015年部门工作总结范文
2015/03/31 职场文书
2015学生会文艺部工作总结
2015/04/03 职场文书
学籍证明模板
2015/06/18 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
开学第一天的感想
2015/08/10 职场文书
springboot 多数据源配置不生效遇到的坑及解决
2021/11/17 Java/Android