이 글에서는 주로 WeChat 애플릿의 카운트다운 구성 요소 구현 코드에 대한 관련 정보를 소개합니다. 도움이 필요한 친구는
기능: 기간 한정 공동 구매, 제품 플래시 세일에 적합합니다. etc.
먼저 최종 효과를 살펴보겠습니다.
git 소스: http://git. oschina.net/dotton/CountDown
포인트 단계 - 참을성이 없는 친구의 경우 마지막 코드 부분을 직접 볼 수 있습니다.
wxml 파일에 텍스트 넣기
js 파일에서
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); } });
를 호출하여 검증을 실행하고 10초에서 1초로 이동한 후 시간을 표시합니다.
그래서 우리는 밀리초를 계속해서 개선하고 있습니다. 밀리초의 단계 크기는 시스템의 시간 빈도에 의해 제한되므로 0.01초, 즉 10ms까지 정확합니다
js
/* 秒级倒计时 */ 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><p>wxml 파일</p><p></p><pre class="brush:php;toolbar:false"><text>second: {{second}}s</text> <text>{{micro_second}}</text>
이렇게 2차 작업이 완료되면 완료되면 밀리초 수준 타이머는clearTimeout이고 텍스트가 표시됩니다. 'micro_second too'
에 대한 또 다른 countdown4micro 메서드를 추가하여 나머지 0:3:19 89가
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> 이런 식으로 밀리초와 시, 분, 초를 별도로 렌더링하면 프로그램의 가독성이 높아집니다. dateformat은 밀리초 단위로 작동하며 초를 허용하지 않습니다. 동시에 1초에 100번의 계산도 저장해 줍니다 <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); } });위의 최적화 후에는 코드량이 절반으로 줄어들고, 운영 효율성도 높다. 읽어주셔서 감사합니다. 도움이 되기를 바랍니다. 이 사이트를 지원해 주셔서 감사합니다! WeChat 애플릿 카운트다운 구성 요소 구현 코드와 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기
