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


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 相关文章推荐
js下写一个事件队列操作函数
Jul 19 Javascript
php读取sqlite数据库入门实例代码
Jun 25 Javascript
javascipt:filter过滤介绍及使用
Sep 10 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
Mar 31 Javascript
javascript获取网页宽高方法汇总
Jul 19 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
Mar 10 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
Jun 14 Javascript
javascript中href和replace的比较(详解)
Nov 25 Javascript
Vue自定义事件(详解)
Aug 19 Javascript
Vue 源码分析之 Observer实现过程
Mar 29 Javascript
Node.js中的child_process模块详解
Jun 08 Javascript
DatePickerDialog 自定义样式及使用全解
Jul 09 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和AJAX创建RSS聚合器的代码
2007/03/13 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
php使用GeoIP库实例
2014/06/27 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
2007/04/20 Javascript
基于jquery的图片轮播 tab切换组件
2012/07/19 Javascript
js中arguments的用法(实例讲解)
2013/11/30 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
Ajax清除浏览器js、css、图片缓存的方法
2015/08/06 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
echarts多条折线图动态分层的实现方法
2019/05/24 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
[01:07:15]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第二场 1月25日
2021/03/11 DOTA
python 测试实现方法
2008/12/24 Python
python中dir函数用法分析
2015/04/17 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
Python基于property实现类的特性操作示例
2018/06/15 Python
python读写csv文件方法详细总结
2019/07/05 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
Python包和模块的分发详细介绍
2020/06/19 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
应聘医药代表职位求职信
2013/10/21 职场文书
创建精神文明单位实施方案
2014/03/08 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
建筑工地标语
2014/06/18 职场文书
公司授权委托书格式范文
2014/10/02 职场文书
民事诉讼代理委托书
2014/10/08 职场文书
爱护公物主题班会
2015/08/17 职场文书
2016基督教会圣诞节开幕词
2016/03/04 职场文书
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
2021/05/24 Python