Skip to content

CountDown 倒计时

该组件一般使用于某个活动的截止时间上,通过数字的变化,给用户明确的时间感受,提示用户进行某一个行为操作。

平台差异说明

AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序
兼容中兼容中兼容中兼容中

基本使用

通过timestamp参数设置倒计时间,单位为

vue
<template>
	<tn-count-down :timestamp="timestamp"></tn-count-down>
</template>

<script>
	export default {
		data() {
			timestamp: 86400,
		}
	}
</script>

设置是否显示天、时、分、秒

可以通过showDaysshowHoursshowMinutesshowSeconds参数设置为true(默认值),可以对应显示天、时、分、秒。

另外还提供了一个hideZeroDay参数自动隐藏0天的情况,默认为关闭状态。

说明:参数的配置原则应该是"自右向左"的,设置了"时",它右边的"分"和"秒"也应该设置为true

vue
<tn-count-down :timestamp="timestamp" :showDays="false" :showHours="false"></tn-count-down>

设置倒计时分隔符

可以通过separator设置是使用 ‘:’ 还是中文作为分隔符。并且通过separatorColorseparatorSize来设置分隔符的颜色和大小。

  • en: 默认值,显示冒号分隔符。
  • ch: 显示中文分隔符。
vue
<tn-count-down :timestamp="timestamp" separator="ch" separatorColor="#01BEFF"></tn-count-down>

执行倒计时时机

通过autoplay配置倒计时是否在组件的mounted生命周期进行初始化(在timestamp有值前提下),如果设置autoplayfalse,就需要手动通过 ref的形式通知倒计时开始执行,调用的是组件内部的start()方法。

vue
<template>
  <tn-count-down ref="countDown" :timestamp="timestamp" :autoplay="false"></tn-count-down>
</template>

<script>
  export default {
    data() {
      timestamp: 86400,
    },
    onLoad() {
      setTimeout(() => {
        this.$refs.countDown.start();
      }, 2000)
    }
  }
</script>

获取当前倒计时剩余秒数

有以下两种方法进行配置:

  • 监听change事件,在回调中获得当前剩余的秒数。
  • 通过ref调用,获取内部的seconds参数即为当前剩余的秒数。
vue
<template>
  <tn-count-down ref="countDown" :timestamp="timestamp" :autoplay="false" @change="change"></tn-count-down>
</template>

<script>
  export default {
    data() {
      timestamp: 86400,
    },
    onLoad() {
      setTimeout(() => {
        this.$refs.countDown.start();
      }, 2000)
    },
    methods: {
      // 事件触发,每秒一次
      change(timestamp) {
        console.log(timestamp);
      },
      // ref形式获取内部的值
      getSeconds() {
        console.log(this.$refs.countDown.seconds);
      }
    }
  }
</script>

API

Props

属性名说明类型默认值可选值
timestamp倒计时时间,单位sNumber0-
autoplay自定开启倒计时Booleantruefalse
backgroundColor背景颜色String#FFFFFF颜色的十六进制值,rgba(),rgb(),TuniaoUI内置的颜色类名
fontColor字体颜色String#080808颜色的十六进制值,rgba(),rgb(),TuniaoUI内置的颜色类名
fontSize字体大小Number30-
fontUnit字体大小的单位Stringrpx-
height数字框的高度Stringauto-
separator分隔符类型Stringench
separatorSize分隔符尺寸,单位rpxNumber30-
separatorColor分隔符颜色String#080808-
showBorder显示边框Stringfalsetrue
borderColor边框颜色String#080808-
showSeconds显示秒Booleantruefalse
showMinutes显示分Booleantruefalse
showHours显示时Booleantruefalse
showDays显示天Booleantruefalse
hideZeroDay自动隐藏0天的情况Booleanfalsetrue

Slots

none

Methods

需要通过ref手动调用。

名称说明
start开始执行倒计时

Event

事件名称说明回调参数
end倒计时结束-
change倒计时过程中,每秒触发一次当前剩余的倒计时的时间戳