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


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:地址栏载入脚本代码
Oct 13 Javascript
js window.open弹出新的网页窗口
Jan 16 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
Jan 30 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
Jan 19 Javascript
BootStrap fileinput.js文件上传组件实例代码
Feb 20 Javascript
利用vueJs实现图片轮播实例代码
Jun 03 Javascript
React实践之Tree组件的使用方法
Sep 30 Javascript
如何重置vue打印变量的显示方式
Dec 06 Javascript
vue elementui el-form rules动态验证的实例代码详解
May 23 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
Jun 20 jQuery
javascript实现计算器功能
Mar 30 Javascript
全面解析JavaScript Module模式
Jul 24 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
《超神学院》霸气归来, 天使彦上演维多利亚的秘密
2020/03/02 国漫
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
Yii2.0预定义的别名功能小结
2016/07/04 PHP
浅谈thinkphp5 instance 的简单实现
2017/07/30 PHP
php表单习惯用的正则表达式
2017/10/11 PHP
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
2014/01/08 Javascript
js防止DIV布局滚动时闪动的解决方法
2014/10/30 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
javascript实现获取字符串hash值
2015/05/10 Javascript
整理Javascript基础语法学习笔记
2015/11/29 Javascript
JavaScript希尔排序、快速排序、归并排序算法
2016/05/08 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
2016/08/01 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
javascript 跨域问题以及解决办法
2017/07/17 Javascript
代码详解JS操作剪贴板
2018/02/11 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
jQuery实现消息弹出框效果
2019/12/10 jQuery
对vuex中store和$store的区别说明
2020/07/24 Javascript
python用字典统计单词或汉字词个数示例
2014/04/22 Python
python 打印出所有的对象/模块的属性(实例代码)
2016/09/11 Python
python机器学习实战之K均值聚类
2017/12/20 Python
wxPython实现窗口用图片做背景
2018/04/25 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
Python接口测试文件上传实例解析
2020/05/22 Python
python使用opencv resize图像不进行插值的操作
2020/07/05 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
python函数超时自动退出的实操方法
2020/12/28 Python
HTML5拖放功能_动力节点Java学院整理
2017/07/13 HTML / CSS
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
教师应聘个人求职信
2013/12/10 职场文书
《社戏》教学反思
2014/04/15 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
金融专业银行实习证明模板
2014/11/28 职场文书
Python必备技巧之字符数据操作详解
2022/03/23 Python
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript