iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >微信小程序倒计时组件怎么用
  • 796
分享到

微信小程序倒计时组件怎么用

2023-06-26 08:06:45 796人浏览 安东尼
摘要

这篇文章主要介绍“微信小程序倒计时组件怎么用”,在日常操作中,相信很多人在微信小程序倒计时组件怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微信小程序倒计时组件怎么用”的疑惑有所帮助!接下来,请跟着小编

这篇文章主要介绍“微信小程序倒计时组件怎么用”,在日常操作中,相信很多人在微信小程序倒计时组件怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微信小程序倒计时组件怎么用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

微信小程序倒计时组件怎么用

重构旧代码

在原来的组件中有一个initDuration属性和3个方法,3个方法分别是countDown,fORMat和runCountDown。

initDuration属性

首先我们需要三个page属性来帮助完成接下来的代码,它们的名字和内容如下:

timer: null, // 存储setInterval的IDflag: false, // 倒计时是否结束的标志num: 0 // 过去的秒数复制代码

在initDuration属性的新的回调方法中,我们封装了clearTimer方法,init初始化方法,并且执行倒计时。

initDuration: {  type: Number,  value: 0,  observer: function (newVal) {    if (this.timer) {      this.clearTimer()    }      this.init() // 重置num和flag    this.runCountDown(newVal)  }},复制代码

一定要注意,当传入的属性的值为默认值,例如这里是0时,是不会触发observer回调的。

init: function () {  this.flag = false  this.num = 0}clearTimer: function () {  clearInterval(this.timer)  this.timer = null}复制代码

countDown方法

countDown方法是接受一个参数为倒计时的秒数,返回一个倒计时的字符串。在这个方法中没有太大改动,只是改动了一些代码格式。如下:

countDown: function (duration) {  if (duration <= 0) {    this.setFlag(true) // 将flag属性设为true    return '00:00:00' // 返回默认时间设置  }  let seconds = this._format(duration % 60)  let minutes = Math.floor(duration / 60)  minutes = minutes >= 60 ? this._format(minutes % 60) : this._format(minutes)  let hours = this._format(Math.floor(duration / 3600))  return `${hours}:${minutes}:${seconds}`},复制代码

format方法

format方法的作用很简单,就是处理小于10的数字展示问题。

format: function (time) {  return time >= 10 ? time : `0${time}`},复制代码

runCountDown方法

runCountDown方法中的改动比较大,在原来的代码中逻辑比较混乱,穿插了许多无关的代码,其实应该将它们封装起来达到解耦的目的。

runCountDown: function (initDuration) {  // 第一次给倒计时赋值 this.setData({ countDownStr })  this.setCountDownTime(this.countDown(initDuration))  // 每一秒更新一次倒计时  this.timer = setInterval(() => {    if (this.flag == true) { // 倒计时结束      clearInterval(this.timer)      return undefined    }    this.addNum() // this.num += 1    this.setCountDownTime(this._countDown(initDuration - this.num))  }, 1000)},复制代码

增加新功能

我们原来的倒计时组件是缺乏一些功能的,例如传入的时间只能是秒数,倒计时结束后只显示00:00:00,如果传入的值是0的话会不进行初始化(这算是Bug了)。所以我们需要加入以下的新功能:

  • 支持自定义倒计时结束后现实的字符串。

  • 修复传入值为0的Bug。

  • 传入的时间可以是秒数,也可以是UTC时间的字符串。

自定义结束字符串

在倒计时组件中,展示倒计时字符串的是this.data.countDownTime属性。所以在结束时将countDownTime属性的值设为传入的字符串即可。 首先,封装一个赋值方法

setEndContent: function (countDownTime) {  if (countDownTime) {    this.setData({ countDownTime })  }}复制代码

接下来为组件新增加一个属性为 endContent 。

endContent: {  type: String,  value: '00:00:00'}复制代码

接下来,在倒计时结束的位置,调用我们的赋值方法,也就是runCountDown方法的计时器回调函数中。

this.timer = setInterval(() => {  if (this.flag == true) {    clearInterval(this.timer)        this.setEndContent(this.properties.endContent) // 设置结束字符串        return undefined  }      this.addNum()  this.setCountDownTime(this._countDown(initDuration - this.num))}, 1000)复制代码

这样自定义字符串就成功了,在使用组件时传入默认值即可。

修复传入值为0的Bug

这个问题的出现是因为当传入属性为默认值时,不会调用observer回调函数,所以这时我们需要使用组件的 attached 生命周期函数。

attached: function () {  if (this.properties.initDuration <= 0) {    // 如果传入值为零时不会调用observer回调,则直接从这里展示倒计时结束    this.setEndContent(this.properties.endContent)  }}复制代码

可以传入UTC时间字符串

为了简洁起见,我们就不为组件增加新的属性了,依然使用initDuration属性,所以要将其type从Number改为null(小程序的这点不够强,不能选择多类型。)。在修改type后我们需要封装一个将UTC时间字符串解析成倒计时秒数的方法。

parseDate: function (date) {  if (typeof date == 'string') {    // 将传进来的时间减去现在的时间,得到的结果便和直接传进数字值相同    return Math.floor((+new Date(date) / 1000)) - Math.floor((+new Date / 1000))  }    return date}复制代码

在observer回调中调用时如下:

initDuration: {  type: null,  observer: function (newVal) {    if (this.timer) {      this._clearTimer()    }      this._init()    this._runCountDown(this.parseDate(newVal)) // 在这里调用parseData方法  }}复制代码

到此,关于“微信小程序倒计时组件怎么用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 微信小程序倒计时组件怎么用

本文链接: https://www.lsjlt.com/news/308300.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 微信小程序倒计时组件怎么用
    这篇文章主要介绍“微信小程序倒计时组件怎么用”,在日常操作中,相信很多人在微信小程序倒计时组件怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微信小程序倒计时组件怎么用”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-26
  • 微信小程序实现倒计时
    本文实例为大家分享了微信小程序实现倒计时的具体代码,供大家参考,具体内容如下 大家好,今天我们来学习一下倒计时的实现,好好看,好好学,超详细的。 直接上代码吧 <view cl...
    99+
    2024-04-02
  • 小程序倒计时组件怎么实现
    本篇内容主要讲解“小程序倒计时组件怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“小程序倒计时组件怎么实现”吧!  介绍:  用于在微信小程序中进行倒计时的组件。  功能:  1、最基础的...
    99+
    2023-06-26
  • 微信小程序倒计时功能怎么实现
    微信小程序的倒计时功能可以通过使用setInterval函数来实现。 首先,在页面的js文件中定义一个变量,用于存储倒计时的时间: ...
    99+
    2024-02-29
    微信小程序
  • 微信小程序如何实现倒计时
    这篇文章主要介绍“微信小程序如何实现倒计时”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序如何实现倒计时”文章能帮助大家解决问题。直接上代码吧<view class=&quo...
    99+
    2023-06-30
  • 微信小程序实现答题倒计时
    想做一个答题的计时器效果,本文为大家分享了微信小程序实现答题倒计时的具体代码,供大家参考,具体内容如下 思路 利用canvas不停的画弧线 效果 代码 wxml <view...
    99+
    2024-04-02
  • 微信小程序中如何显示倒计时
    这篇文章主要为大家展示了“微信小程序中如何显示倒计时”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序中如何显示倒计时”这篇文章吧。wxml文件中:&nb...
    99+
    2024-04-02
  • 微信小程序实现验证码倒计时
    本文实例为大家分享了微信小程序实现验证码倒计时的具体代码,供大家参考,具体内容如下 wxml代码: <view class='container'>   <form...
    99+
    2024-04-02
  • 微信小程序实现短信验证码倒计时
    本文实例为大家分享了微信小程序实现短信验证码倒计时的具体代码,供大家参考,具体内容如下 初始效果 当点击按钮时候设置禁止点击效果:如下图 话不多说,直接上代码 1.wxml部分 ...
    99+
    2024-04-02
  • 微信小程序实现简单倒计时功能
    本文实例为大家分享了微信小程序实现简单倒计时的具体代码,供大家参考,具体内容如下 任务描述: 计时器 任务要求: 案例描述:设计一个实现倒计时功能的小程序,小程序运行后,首先显示空白...
    99+
    2024-04-02
  • 微信小程序电商常用倒计时实现实例
    微信小程序电商常用倒计时实现实例wxml文件放个text<text>second: {{second}} micro second:{{micro_second}}</text>在js文件中调用function co...
    99+
    2023-05-31
    微信小程序 倒计时 信小
  • 微信小程序实现验证码倒计时效果
    本文实例为大家分享了微信小程序验证码倒计时效果的具体代码,供大家参考,具体内容如下 如果写过js的倒计时,那么小程序中使用也是差不多的; 代码: data: {       daoj...
    99+
    2024-04-02
  • 微信小程序如何实现短信验证码倒计时
    这篇文章主要讲解了“微信小程序如何实现短信验证码倒计时”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序如何实现短信验证码倒计时”吧!初始效果当点击按钮时候设置禁止点击效果:如下图话不...
    99+
    2023-06-30
  • 微信小程序实现发送短信验证码倒计时
    本文实例为大家分享了微信小程序发送短信验证码倒计时的具体代码,供大家参考,具体内容如下 效果图 WXML文件 <view class="container"> ...
    99+
    2024-04-02
  • 微信小程序实现获取手机号60s倒计时
    本文实例为大家分享了微信小程序实现获取手机号60s倒计时的具体代码,供大家参考,具体内容如下 1.效果:点击获取》60s倒计时》重新获取 2.wxml <view class...
    99+
    2024-04-02
  • 微信小程序如何实现简单倒计时功能
    本篇内容介绍了“微信小程序如何实现简单倒计时功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!任务描述:计时器任务要求:案例描述:设计一个实...
    99+
    2023-06-30
  • 如何使用PHP开发微信小程序的倒计时功能?
    如何使用PHP开发微信小程序的倒计时功能?随着移动互联网的发展,微信小程序已经成为了人们生活中不可或缺的一部分,越来越多的开发者也开始关注微信小程序的开发。而倒计时功能作为一种常用的功能,在微信小程序中也是十分常见的。本文将介绍如何使用PH...
    99+
    2023-10-26
    PHP 微信小程序 倒计时
  • 微信小程序组件contact-button怎么用
    这篇文章主要介绍“微信小程序组件contact-button怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序组件contact-button怎么用”文章能帮助大家解决问题。contac...
    99+
    2023-06-26
  • 微信小程序组件样式怎么用
    这篇文章主要讲解了“微信小程序组件样式怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序组件样式怎么用”吧!组件样式组件对应 wxss 文件的样式,只对组件w...
    99+
    2023-06-26
  • 微信小程序image组件库怎么用
    今天小编给大家分享一下微信小程序image组件库怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。微信小程序image图片...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作