返回介绍

开发指南

组件

JS

模板

CountDown 倒计时

发布于 2021-04-03 05:35:24 字数 6134 浏览 866 评论 0 收藏 0

CountDown 倒计时 平台差异说明
AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序

基本使用

  • 通过timestamp参数设置倒计时间,单位为
<template>
	<u-count-down :timestamp="timestamp"></u-count-down>
</template>

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

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

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

  • show-daysshow-hoursshow-minutesshow-seconds等参数默认为true,分别对应是否显示倒计时的"天","时","分","秒"。

该示例表示只显示倒计时的分和秒

<u-count-down :timestamp="86400" :show-days="false" :show-hours="false"></u-count-down>

倒计时分隔符

通过配置separator参数为colon或者zh来区分分隔符。separator-size配置分隔符的大小,单位rpx。separator-color配置分隔符的颜色 separator可选值如下:

  • colon(默认)时显示为冒号,如:23:14:51
  • zh时显示为中文,如:23时14分51秒
<u-count-down :timestamp="86400" separator="colon" separator-size="28" separator-color="#606266"></u-count-down>

倒计时样式

  • 通过color设置倒计数字的颜色
  • font-size设置倒计数字的大小,重申一次:uView中,所有font-sizewidthheightpaddingmargin等props参数 的单位默认都是rpx,特别说明除外(极少数场景会要求px单位)。关于rpx单位的说明,请参考uni官方文档:尺寸单位
  • show-border参数设置倒计数字是否添加边框,border-color参数设置边框的颜色
<u-count-down :timestamp="86400" :show-border="true" font-size="28" color="#606266" border-color="#909399"></u-count-down>

倒计时执行的时机

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

<template>
	<u-count-down ref="uCountDown" :timestamp="86400" :autoplay="false"></u-count-down>
</template>

<script>
	export default {
		onLoad() {
			setTimeout(() => {
				this.$refs.uCountDown.start();
			}, 2000)
		}
	}
</script>

如何获取当前倒计的秒数

有时候我们可会需要记录当前剩余的秒数,并在某个时机重新触发,可以通过如下两个方式实现:

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

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

API

Props

参数说明类型默认值可选值
timestamp倒计时,单位为秒String | Number0-
autoplay是否自动开始倒计时,如果为false,需手动调用开始方法。见上方说明Booleantruefalse
separator分隔符,colon为英文冒号,zh为中文Stringcolonzh
separator-size分隔符的字体大小,单位rpxString | Number30-
separator-color分隔符的颜色String#303133-
font-size倒计时字体大小,单位rpxString | Number30-
show-border是否显示倒计时数字的边框Booleanfalsetrue
border-color数字边框的颜色String#303133-
bg-color倒计时数字的背景颜色String#ffffff-
color倒计时数字的颜色String#303133-
height数字高度值(宽度等同此值),设置边框时看情况是否需要设置此值,单位rpxStringauto-
show-days是否显示倒计时的"天"部分Booleantruefalse
show-hours是否显示倒计时的"时"部分Booleantruefalse
show-minutes是否显示倒计时的"分"部分Booleantruefalse
show-seconds是否显示倒计时的"秒"部分Booleantruefalse
hide-zero-day 1.4.4当"天"的部分为0时,隐藏该字段Booleantruefalse

Events

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

Methods

需要通过ref获取倒计时组件才能调用,见上方"倒计时执行的时机"说明

名称说明
start开始倒计时

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文