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


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 相关文章推荐
解决 firefox 不支持 document.all的方法
Mar 12 Javascript
js函数般调用正则
Apr 08 Javascript
Notify - 基于jquery的消息通知插件
Oct 18 Javascript
Js 时间间隔计算的函数(间隔天数)
Nov 15 Javascript
JS中三目运算符和if else的区别分析与示例
Nov 21 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
Sep 17 Javascript
全面解析Bootstrap弹窗的实现方法
Dec 01 Javascript
原生javascript实现自动更新的时间日期
Feb 12 Javascript
jquery单击事件和双击事件冲突解决方案
Mar 02 Javascript
详解用Node.js实现Restful风格webservice
Sep 29 Javascript
京东优选小程序的实现代码示例
Feb 25 Javascript
k8s node节点重新加入master集群的实现
Feb 22 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 Ctemplate引擎开发相关内容
2012/03/03 PHP
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
PHP中imagick函数的中文解释
2015/01/21 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
PHP7 其他修改
2021/03/09 PHP
Javascript开发包大全整理
2006/12/22 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
Javascript闭包(Closure)详解
2015/05/05 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
深入理解jQuery()方法的构建原理
2016/12/05 Javascript
浅谈Nodejs中的作用域问题
2016/12/26 NodeJs
angularjs实现猜大小功能
2017/10/23 Javascript
Angular中支持SCSS的方法
2017/11/18 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
2020/07/22 Javascript
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
Python统计单词出现的次数
2018/04/04 Python
对numpy中布尔型数组的处理方法详解
2018/04/17 Python
pandas 两列时间相减换算为秒的方法
2018/04/20 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
用CSS3实现无限循环的无缝滚动的实例代码
2017/07/04 HTML / CSS
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
英国鞋类及配饰零售商:Kurt Geiger
2017/02/04 全球购物
苹果台湾官网:Apple台湾
2019/01/05 全球购物
梅西百货官网:Macy’s
2020/08/04 全球购物
上课迟到检讨书
2014/02/19 职场文书
新学期开学标语
2014/06/30 职场文书
房屋过户委托书范本
2014/10/07 职场文书
2014年局领导班子自身建设情况汇报
2014/11/21 职场文书