This article mainly introduces the relevant information about the implementation code of the countdown component of the WeChat applet. Friends in need can refer to the following
Functions: Suitable for limited-time group purchases, product flash sales, etc. in e-commerce applications
Let’s take a look at the final effect first:
function countdown(that) { var second = that.data.second if (second == 0) { // console.log("Time Out..."); that.setData({ second: "Time Out..." }); return ; } var time = setTimeout(function(){ that.setData({ second: second - 1 }); countdown(that); } ,1000) } Page({ data: { second: 3 }, onLoad: function() { countdown(this); } });in the js file to run the verification, go from 10 to 1s, and then display the time. So we continue to improve the milliseconds. Note that the step size of milliseconds is limited by the time frequency of the system, so we are accurate to 0.01s, which is 10msjs
/* 秒级倒计时 */ function countdown(that) { var second = that.data.second if (second == 0) { that.setData({ second: "Time out!", micro_second: "micro_second too." }); clearTimeout(micro_timer); return ; } var timer = setTimeout(function(){ that.setData({ second: second - 1 }); countdown(that); } ,1000) } /* 毫秒级倒计时 */ // 初始毫秒数,同时用作归零 var micro_second_init = 100; // 当前毫秒数 var micro_second_current = micro_second_init; // 毫秒计时器 var micro_timer; function countdown4micro(that) { if (micro_second_current <p></p>wxml file<p></p><p></p><pre class="brush:php;toolbar:false"><text>second: {{second}}s</text> <text>{{micro_second}}</text>In this way, when the second-level operation is completed, the millisecond-level timer is clearTimeout, and the text is displayed Add another countdown4micro method for 'micro_second too', so that the remaining 0:3:19 89 is displayed in the form of a countdown
function dateformat(second) { var dateStr = ""; var hr = Math.floor(second / 3600); var min = Math.floor((second - hr * 3600) / 60); var sec = (second - hr * 3600 - min * 60);// equal to => var sec = second % 60; dateStr = hr + ":" + min + ":" + sec; return dateStr; } 目前有2个时钟,影响性能,合并下去掉countdown,于是countdown4micro变成以下的样子: function countdown4micro(that) { var loop_second = Math.floor(loop_index / 100); // 得知经历了1s if (cost_micro_second != loop_second) { // 赋予新值 cost_micro_second = loop_second; // 总秒数减1 total_second--; } // 每隔一秒,显示值减1; 渲染倒计时时钟 that.setData({ clock:dateformat(total_second - 1) }); if (total_second == 0) { that.setData({ // micro_second: "", clock:"时间到" }); clearTimeout(micro_timer); return ; } if (micro_second_current <p></p>Like this In this way, milliseconds and hours, minutes and seconds are rendered separately. Once again, the program is more readable. dateformat operates on milliseconds and does not accept seconds. At the same time, it also saves the calculation of 100 calculations for 1 second<p></p><p></p><pre class="brush:php;toolbar:false">/** * 需要一个目标日期,初始化时,先得出到当前时间还有剩余多少秒 * 1.将秒数换成格式化输出为XX天XX小时XX分钟XX秒 XX * 2.提供一个时钟,每10ms运行一次,渲染时钟,再总ms数自减10 * 3.剩余的秒次为零时,return,给出tips提示说,已经截止 */ // 定义一个总毫秒数,以一分钟为例。TODO,传入一个时间点,转换成总毫秒数 var total_micro_second = 2 * 1000; /* 毫秒级倒计时 */ function countdown(that) { // 渲染倒计时时钟 that.setData({ clock:dateformat(total_micro_second) }); if (total_micro_second var sec = second % 60; // 毫秒位,保留2位 var micro_sec = Math.floor((micro_second % 1000) / 10); return hr + ":" + min + ":" + sec + " " + micro_sec; } Page({ data: { clock: '' }, onLoad: function() { countdown(this); } });After the above optimization, the code amount is reduced by half, and the operating efficiency is also high. Thank you for reading, I hope it can help you, thank you for your support of this site! For more articles related to the WeChat applet countdown component implementation code, please pay attention to the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

WebStorm Mac version
Useful JavaScript development tools

Dreamweaver Mac version
Visual web development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function
