微信小程序倒计时
今天做程序要做个限时抢购的功能如图:
先上代码:
源码
index.wxml 可根据自己实际需求改改
<view class="div-content-warp">
<block wx:for="{{xsqg}}" wx:key="*this">
<view class="div-qgcontent">
<view class='img-absolute'>
<view class='red padtop10'>
<image class='time-img' src="../../image/img/time.png"></image>
<text class='time'> {{clock[index]}} </text>
</view>
<view class="category-url" bindtap="cateTap" data-cateId="{{item.id}}">
<image class="img-limet" src="../../image/img/xian1.png"></image>
<image class="shop" src="{{item.pic}}"></image>
<view class='del'>原价:{{item.yj}}</view>
<view class='red qgj'>抢购价:{{item.lowest}}</view>
</view>
</view>
</view>
</block>
</view>
由于 他是4个倒计时并且每个还是单独的倒计时 所以用了数组 在循环的时候通过数组的key取值 {{clock[index]}}
index.js
Page({
data: {
clock: []
},
onLoad: function (options) {
var that = this;
util.http("https://www.***.com/index.html", "", this.product);
},
product: function (data) {
console.log(data);
this.setData({
xsqg: data.xsqg
}) var interval = setInterval(function () {
//将时间传如 调用
var clock = forea(data.xsqg); this.setData({//正常倒计时
clock: clock
});
}.bind(this), 1000);
} })
function forea(timetot) {
var clockarr = [];
var timenow = Date.parse(new Date()) / 1000;
for (var i = 0; i < 4; i++) { var totalSecond = timetot[i].end_time - timenow;
var totalstart = timetot[i].start_time - timenow;
if (totalstart > 0) {
var time = '未开始';
} else if (totalSecond < 0) {
var time = '已结束';
} else {
var time = dateformat(totalSecond);
}
clockarr.push(time);
}
return clockarr;
} // 时间格式化输出,将时间戳转为 倒计时时间
function dateformat(micro_second) { var second = micro_second;//总的秒数 // 天数位
var day = Math.floor(second / 3600 / 24);
var dayStr = day.toString();
if (dayStr.length == 1) dayStr = '0' + dayStr; // 小时位
//var hr = Math.floor(second / 3600 % 24);
var hr = Math.floor(second / 3600); //直接转为小时 没有天 超过1天为24小时以上 var hrStr = hr.toString();
if (hrStr.length == 1) hrStr = '0' + hrStr; // 分钟位
var min = Math.floor(second / 60 % 60);
var minStr = min.toString();
if (minStr.length == 1) minStr = '0' + minStr; // 秒位
var sec = Math.floor(second % 60);
var secStr = sec.toString();
if (secStr.length == 1) secStr = '0' + secStr; return hrStr + ":" + minStr + ":" + secStr; }
难点就是一个的话好控制,4个需要同时倒计,怎么才能同时刷??
思路:
将倒计时的时间放入数组封装成方法 然后用 setInterval调用每1000毫秒调用一次。
在做的过程中出现的问题:
(1)把for 循环写在了setInterval 中只执行一次 不知道为什么
(2)数组每次都循环但是 数组里面的值不变?? 后来把他单独摘出来 分开调用
有不对的地方,大家批评指正。
微信小程序倒计时的更多相关文章
- 微信小程序倒计时组件开发
今天给大家带来微信小程序倒计时组件具体开发步骤: 先来看下最终效果: git源:http://git.oschina.net/dotton/CountDown 分步骤-性子急的朋友,可以直接看最后那段 ...
- 微信小程序 倒计时
这两天在看微信小程序,参考了网上的资料,做了一个倒计时的练习,记录如下. 本文作者:罗兵 原地址:https://www.cnblogs.com/hhh5460/p/9981064.html 0.效果 ...
- 微信小程序——倒计时功能
做小程序项目中,需要做一个倒计时功能,如下图: 记录一下实现步骤: 1.考虑到这个功能可能会有多处用到,所以把倒计时的函数写在utils.js里面: const formatNumber = n =& ...
- 微信小程序倒计时实现
思路:跟一般js倒计时一样,主要在于this的变相传递. 实现效果: wxml文件部分代码: common.js文件 : 引用页JS文件: PS: 1.在data里初始化时间格式,是避免时间加载的第1 ...
- 微信小程序倒计时的方法
timeOut: function(time) { var that = this; var end = new Date(time).getTime(); var Interval = setInt ...
- 微信小程序倒计时实现功能
onLoad: function () { var that=this; this.data.intervarID= setInterval(function () { var ...
- 微信小程序源码推荐
wx-gesture-lock 微信小程序的手势密码 WXCustomSwitch 微信小程序自定义 Switch 组件模板 WeixinAppBdNovel 微信小程序demo:百度小说搜索 sh ...
- 微信小程序案例大全
微信小程序demo:足球,赛事分析 小程序简易导航 小程序demo:办公审批 小程序Demo:电魔方 小程序demo:借阅伴侣 微信小程序demo:投票 微信小程序demo:健康生活 小程序demo: ...
- 微信小程序学习指南
作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
随机推荐
- 201521123025<<java程序设计>>第4周学习总结
Q1. 本周学习总结 Q2.书面作业 1.注释的应用 使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看.(截图) 2.面向对象设计(大作业1,非常重要) 2.1 将在网上 ...
- Java中的基本数据类型和基本数据类型之间的转换
在Java中有8中基本数据类型,分别为: 整型: byte.short.int.long 浮点型:float.double 布尔型:boolean 字符型:char. byte: 8位, 封装 ...
- Java:接口继承接口 (多继承机制)
在看API文档时,突然发现一个接口可以是其他接口的子接口,这说明接口之间会存在继承的关系.查找了相关的资料,做一个总结. 是继承还是实现 首先要搞清楚接口之间的关系使用的关键字是extends还是im ...
- Azure ARM (16) 基于角色的访问控制 (Role Based Access Control, RBAC) - 使用默认的Role
<Windows Azure Platform 系列文章目录> 今天上午刚刚和客户沟通过,趁热打铁写一篇Blog. 熟悉Microsoft Azure平台的读者都知道,在老的Classic ...
- Scanner(键盘录入)
注意事件: 1: 当使用Scanner类时 切记不要做从键盘输入一个int数 再输入一个字符串 这样会导致bug就是字符串会读取不到几所输入的内容 原因是因为:当你用了NextInt()方法时,再按了 ...
- pycharm 2017新建文件添加编码方式等
file->setting->Editor->File and Code Templates->Python Script 添加 #!/usr/bin/python3# -*- ...
- SQL Server 2016 Alwayson新增功能
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/ 概述 SQLServer2016发布版本到现在已有一年多的时间了,目前最新的稳定版本是SP1版本.接下来就开看看2016在Alw ...
- 黑马程序员Java基础班+就业班课程笔记全发布(持续更新)
正在黑马学习,整理了一些课程知识点和比较重要的内容分享给大家,也是给自己拓宽一些视野,仅供大家交流学习,大家有什么更好的内容可以发给我 ,现有黑马教程2000G QQ 1481135711 这是我总 ...
- HDFS概述(6)————用户手册
目的 本文档是使用Hadoop分布式文件系统(HDFS)作为Hadoop集群或独立通用分布式文件系统的一部分的用户的起点.虽然HDFS旨在在许多环境中"正常工作",但HDFS的工作 ...
- ssh (免密码登录、开启服务)
ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以Unbutun为例.有机器A(192.168.1.155),B(192.168.1.181).现想 ...