#### js文件
~~~
// indes.js
/**
* 需要一个目标日期,初始化时,先得出到当前时间还有剩余多少秒
* 1.将秒数换成格式化输出为XX天XX小时XX分钟XX秒 XX
* 2.提供一个时钟,每10ms运行一次,渲染时钟,再总ms数自减10
* 3.剩余的秒次为零时,return,给出tips提示说,已经截止
*/
// 定义一个总毫秒数,以一天为例
// var total_micro_second = 3600 * 1000*24;//这是一天倒计时
// var total_micro_second = 10 * 1000;//这是10秒倒计时
var total_micro_second = 3600 * 1000 * 1; //一个小时的倒计时
/* 毫秒级秒杀倒计时 */
function countdown(that) {
// 渲染倒计时时钟
that.setData({
clock: dateformat(total_micro_second)//格式化时间
});
if (total_micro_second <= 0) {
that.setData({
clock: "秒杀结束"
});
// timeout则跳出递归
return;
}
//settimeout实现倒计时效果
setTimeout(function () {
// 放在最后--
total_micro_second -= 10;
countdown(that);
}
, 10)//注意毫秒的步长受限于系统的时间频率,于是我们精确到0.01s即10ms
}
// 时间格式化输出,如1天天23时时12分分12秒秒12 。每10ms都会调用一次
function dateformat(micro_second) {
// 总秒数
var second = Math.floor(micro_second / 1000);
// 天数
var day = Math.floor(second / 3600 / 24);
// 总小时
var hr = Math.floor(second / 3600);
// 小时位
var hr2 = hr % 24;
// 分钟位
var min = Math.floor((second - hr * 3600) / 60);
// 秒位
var sec = (second - hr * 3600 - min * 60);// equal to => var sec = second % 60;
// 毫秒位,保留2位
var micro_sec = Math.floor((micro_second % 1000) / 10);
return day + "天" + hr2 + "时" + min + "分" + sec + "秒" + micro_sec;
}
Page({
data: {
clock: ''
},
onLoad: function () {
countdown(this);
}
});
~~~
#### wxml
~~~
<view class="container">
<text >秒杀: {{clock}}</text>
<text>{{micro_second}}</text>
</view>
~~~
在小程序内部的方法里面调用,
~~~
// 自定义时间
let total_micro = 3600 * 1000 * this.data.examTime;
countdown(this, total_micro);
~~~
- mui框架
- toast提示框的使用
- 星级评分
- 上拉刷新和下拉加载里超链接失效的原因
- confirm确认框的使用
- 取消下拉刷新和上拉加载的border
- 解决使用加载的方式捕捉不到dom
- css样式篇
- css3实现0.5像素的边框
- css3样式中的border-radius的圆角边框
- css面试篇之红色十字架
- css样式~~用图片模拟单选框radio的功能
- div设置绝对定位以后,文字实现居中
- 设置input里面字体颜色和大小
- js知识篇
- javascript篇~~九九乘法表
- js~跳转提示页面
- js~实现60秒倒计时
- 正则表达式之保留小数点后两位小数
- 数组操作方法篇
- Array.prototype.filter()的用法
- 使用正则去除空格
- jQuery知识篇
- jQuery~~模仿radio图片切换
- 下拉菜单的滑动效果
- jQuery点击切换字体颜色
- jQuery实现图片和字体图标颜色的切换
- 左侧菜单之当前点击菜单展开,其他菜单收缩
- jQuery全选或全部不选
- 实现子菜单的收缩和展开
- 小程序
- 小程序~调用豆瓣api数据的问题
- 实现毫秒级倒计时
- 条件渲染-wx:if语句
- 实现两个页面共存
- wxss样式问题
- 修改按钮默认的border-radius
- 移动端
- 安卓底部按钮浮上来的解决方法
- excel(xlsx) to json
- vue
- 事件
- 某个元素的点击事件
- 阻止子事件的冒泡
- excel文件的导入功能(解析成json数据)
- iview框架
- render函数
- iview不支持键盘事件的解决方法
- 路由传参
- 搜索框template的基本写法
- watch监听
- 路由发生变化,数据没有更新?
- 动态组件
- 刷新组件
- 前端小功能
- 搜索框
- axios
- axios公共请求方法
- cookie的简单使用
- 微信扫码登录功能
- pc端微信扫码登录-内嵌网页版
- MongoDB
- 安装与配置
- 布局
- js判断打开是PC端还是移动端
- 自适应布局方案-视口布局
- js实现加密和解密的公共方法
- js实现正则表达式匹配的文字加上标签
- python
- 解决pip升级不成功的原因
- Django
- runserver 失败的原因