微信小程序实现团购或秒杀批量倒计时


Posted in Javascript onNovember 01, 2020

本文实例为大家分享了微信小程序实现批量倒计时的具体代码,供大家参考,具体内容如下

效果图

微信小程序实现团购或秒杀批量倒计时

实现思路

微信小程序实现倒计时,可以将倒计时的时间进行每一秒的计算和渲染!

JS

  1. 模拟商品列表数据 goodsList;
  2. 在 onLoad 周期函数中对活动结束时间进行提取;
  3. 建立时间格式化函数 timeFormat;
  4. 建立倒计时函数 countDown;
  5. 在 onLoad 周期函数的提取结尾执行倒计时函数 countDown。

倒计时函数详解

  1. 获取当前时间,同时得到活动结束时间数组;
  2. 循环活动结束时间数组,计算每个商品活动结束时间的倒计时天、时、分、秒;
  3. 用 setData 方法刷新数据;
  4. 每个一秒执行一次倒计时函数 setTimeout(this.countDown,1000);
let goodsList = [
 {actEndTime: '2018-05-01 10:00:43'},
 {actEndTime: '2018-04-01 11:00:00'},
 {actEndTime: '2018-06-01 12:45:56'},
 {actEndTime: '2018-07-01 15:00:23'},
 {actEndTime: '2018-05-23 17:00:22'},
 {actEndTime: '2018-05-14 19:00:44'},
 {actEndTime: '2018-05-21 21:00:34'},
 {actEndTime: '2018-06-17 09:00:37'},
 {actEndTime: '2018-03-21 05:00:59'},
 {actEndTime: '2018-04-19 07:00:48'},
 {actEndTime: '2018-04-28 03:00:11'}
]
Page({
 data: {
 countDownList: [],
 actEndTimeList: []
 },
 onLoad(){
 let endTimeList = [];
 // 将活动的结束时间参数提成一个单独的数组,方便操作
 goodsList.forEach(o => {endTimeList.push(o.actEndTime)})
 this.setData({ actEndTimeList: endTimeList});
 // 执行倒计时函数
 this.countDown();
 },
 timeFormat(param){//小于10的格式化函数
 return param < 10 ? '0' + param : param; 
 },
 countDown(){//倒计时函数
 // 获取当前时间,同时得到活动结束时间数组
 let newTime = new Date().getTime();
 let endTimeList = this.data.actEndTimeList;
 let countDownArr = [];

 // 对结束时间进行处理渲染到页面
 endTimeList.forEach(o => {
 let endTime = new Date(o).getTime();
 let obj = null;
 // 如果活动未结束,对时间进行处理
 if (endTime - newTime > 0){
 let time = (endTime - newTime) / 1000;
 // 获取天、时、分、秒
 let day = parseInt(time / (60 * 60 * 24));
 let hou = parseInt(time % (60 * 60 * 24) / 3600);
 let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
 let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
 obj = {
  day: this.timeFormat(day),
  hou: this.timeFormat(hou),
  min: this.timeFormat(min),
  sec: this.timeFormat(sec)
 }
 }else{//活动已结束,全部设置为'00'
 obj = {
  day: '00',
  hou: '00',
  min: '00',
  sec: '00'
 }
 }
 countDownArr.push(obj);
 })
 // 渲染,然后每隔一秒执行一次倒计时函数
 this.setData({ countDownList: countDownArr})
 setTimeout(this.countDown,1000);
 }
})

WXML

简单的布局和居中显示。

<view class='tui-countdown-content' wx:for="{{countDownList}}" wx:key="countDownList">
 剩余
 <text class='tui-conutdown-box'>{{item.day}}</text>天
 <text class='tui-conutdown-box'>{{item.hou}}</text>时
 <text class='tui-conutdown-box'>{{item.min}}</text>分
 <text class='tui-conutdown-box tui-countdown-bg'>{{item.sec}}</text>秒
</view>

WXSS

page{background-color: #eee;}
.tui-countdown-content{
 height: 50px;
 line-height: 50px;
 text-align: center;
 background-color: #fff;
 margin-top: 15px;
 padding: 0 15px;
 font-size: 18px;
}
.tui-conutdown-box{
 display: inline-block;
 height: 26px;
 width: 26px;
 line-height: 26px;
 text-align: center;
 background-color: #000;
 color: #fff;
 margin: 0 5px;
}
.tui-countdown-bg{
 background-color: #DF0101;
}

实际应用效果图

由于活动已结束,所以时间全部为'00'

微信小程序实现团购或秒杀批量倒计时

总结

由于微信小程序的数据处理比HTML的更加方便快捷,所以在实现相同效果的时候需要对应的转化一下思路,可能更好的解决问题。

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

Javascript 相关文章推荐
javascript事件问题
Sep 05 Javascript
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
Jun 07 Javascript
快速解决FusionCharts联动的中文乱码问题
Dec 04 Javascript
关于function类中定义变量this的简单说明
May 28 Javascript
JavaScript中数组slice和splice的对比小结
Sep 22 Javascript
node.js学习之base64编码解码
Oct 21 Javascript
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
node.js中grunt和gulp的区别详解
Jul 17 Javascript
VueJs组件之父子通讯的方式
May 06 Javascript
Javascript Promise用法详解
May 10 Javascript
vue input标签通用指令校验的实现
Nov 05 Javascript
在antd Table中插入可编辑的单元格实例
Oct 28 Javascript
微信小程序实现倒计时补零功能
Jul 09 #Javascript
Angular6中使用Swiper的方法示例
Jul 09 #Javascript
微信小程序实现自定义picker选择器弹窗内容
May 26 #Javascript
微信小程序实现漂亮的弹窗效果
May 26 #Javascript
Angular通过指令动态添加组件问题
Jul 09 #Javascript
js实现左右两侧浮动广告
Jul 09 #Javascript
vue-router中scrollBehavior的巧妙用法
Jul 09 #Javascript
You might like
php实现获取文件mime类型的方法
2015/02/11 PHP
PHP用户注册邮件激活账户的实现代码
2017/05/31 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
JavaScript URL参数读取改进版
2009/01/16 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
JS日期加减,日期运算代码
2015/11/05 Javascript
JavaScript中windows.open()、windows.close()方法详解
2016/07/28 Javascript
js初始化验证实例详解
2016/11/26 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
Vue中JS动画与Velocity.js的结合使用
2019/02/13 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
2019/10/16 Javascript
JavaScript实现旋转木马轮播图
2020/03/16 Javascript
介绍Python中的一些高级编程技巧
2015/04/02 Python
Python中input与raw_input 之间的比较
2017/08/20 Python
python 日期操作类代码
2018/05/05 Python
python 识别图片中的文字信息方法
2018/05/10 Python
django从请求到响应的过程深入讲解
2018/08/01 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
Python闭包思想与用法浅析
2018/12/27 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
html5开发三八女王节表白神器
2018/03/07 HTML / CSS
美国校园市场:OCM
2017/06/08 全球购物
一套.net面试题及答案
2016/11/02 面试题
小学班级特色活动方案
2014/08/31 职场文书
青春飞扬演讲稿
2014/09/11 职场文书
护士工作失误检讨书
2014/09/14 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
奖学金感谢信
2015/01/21 职场文书
用Python制作灯光秀短视频的思路详解
2021/04/13 Python
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL