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


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 解析Json字符串的性能比较分析代码
Dec 16 Javascript
JavaScript中OnLoad几种使用方法
Dec 15 Javascript
jquery实现动态菜单的实例代码
Nov 28 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
Aug 20 Javascript
jQuery网页选项卡插件rTabs用法实例分析
Aug 26 Javascript
jQuery zTree加载树形菜单功能
Feb 25 Javascript
BootStrap 可编辑表Table格
Nov 24 Javascript
详解jQuery事件
Jan 13 Javascript
详解Node.js 命令行程序开发教程
Jun 07 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
May 07 Javascript
JavaScript用document.write()输出换行的示例代码
Nov 26 Javascript
Vue中使用import进行路由懒加载的原理分析
Apr 01 Vue.js
微信小程序实现倒计时补零功能
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分页示例分享
2014/04/30 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
2016/04/23 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
2016/09/23 PHP
PHP递归删除多维数组中的某个值
2017/04/17 PHP
Javascript 对象的解释
2008/11/24 Javascript
javascript 文章截取部分无损html显示实现代码
2010/05/04 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
Bootstrap Table使用方法解析
2016/10/19 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
微信小程序封装http访问网络库实例代码
2017/05/24 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
微信小程序实现文件、图片上传功能
2020/08/18 Javascript
vue安装遇到的5个报错及解决方法
2019/06/12 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
python实现RSA加密(解密)算法
2016/02/17 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
Python爬虫入门教程01之爬取豆瓣Top电影
2021/01/24 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
俄罗斯护发和专业化妆品购物网站:Hihair
2019/09/28 全球购物
高中生思想道德自我评价
2015/03/09 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书
Java实现斗地主之洗牌发牌
2021/06/14 Java/Android
Python实现智慧校园自动评教全新版
2021/06/18 Python
golang内置函数len的小技巧
2021/07/25 Golang
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技