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


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 split 的用法和定义 js split分割字符串成数组的实例代码
May 13 Javascript
JS实现一个按钮的方法
Feb 05 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
Nov 24 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
Mar 19 Javascript
bootstrap导航条实现代码
Dec 28 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
Jun 13 Javascript
vue系列之动态路由详解【原创】
Sep 10 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
Jan 16 Javascript
AngularJS动态添加数据并删除的实例
Feb 27 Javascript
vue.js template模板的使用(仿饿了么布局)
Aug 13 Javascript
vue使用高德地图根据坐标定位点的实现代码
Aug 22 Javascript
Angular性能优化之第三方组件和懒加载技术
May 10 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 操作excel文件的方法小结
2009/12/31 PHP
php小型企业库存管理系统的设计与实现代码
2011/05/16 PHP
9个PHP开发常用功能函数小结
2011/07/15 PHP
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
PHP删除指定目录中的所有目录及文件的方法
2015/02/26 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
2019/09/11 PHP
PHP 实现缩略图
2021/03/09 PHP
索趣科技的答案
2007/02/07 Javascript
jQuery 全选/反选以及单击行改变背景色实例
2013/07/02 Javascript
原生JavaScript实现连连看游戏(附源码)
2013/11/05 Javascript
jQuery中:enabled选择器用法实例
2015/01/04 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
jquery简单实现图片切换效果的方法
2015/05/12 Javascript
基于jquery css3实现点击动画弹出表单源码特效
2015/08/31 Javascript
关于JS中二维数组的声明方法
2016/09/24 Javascript
Javascript动画效果(3)
2016/10/11 Javascript
js返回顶部实例分享
2016/12/21 Javascript
JS实现DIV高度自适应窗口示例
2017/02/16 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
快速解决安装python没有scripts文件夹的问题
2018/04/03 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
Python视频爬虫实现下载头条视频功能示例
2018/05/07 Python
python获取url的返回信息方法
2018/12/17 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
20行Python代码实现一款永久免费PDF编辑工具的实现
2020/08/27 Python
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
办公室主任岗位职责
2013/11/08 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
2014小学语文教师个人工作总结
2014/12/03 职场文书
巴黎圣母院观后感
2015/06/10 职场文书
2019假期福利管理制度!
2019/07/15 职场文书