@tanzhenxing/zx-countdown
v1.0.2
Published
倒计时组件
Downloads
8
Maintainers
Readme
zx-countdown 倒计时组件
介绍
zx-countdown是一个功能丰富的倒计时组件,支持天/时/分/秒,可自定义样式,支持毫秒级动画,支持暂停、恢复等操作。
引入方式
<script setup>
import ZxCountdown from '@/components/zx-countdown/zx-countdown.vue';
</script>
<template>
<ZxCountdown :time="3600" />
</template>基础属性
| 属性名 | 类型 | 默认值 | 说明 | | ----- | ---- | ------ | ---- | | time | Number/String | 0 | 倒计时时长(单位:秒) | | timestamp | Number/String | 0 | 目标时间戳,优先级高于time | | width | Number | 32 | 数字框宽度 | | height | Number | 32 | 数字框高度 | | borderColor | String | '#333' | 数字框边框颜色 | | backgroundColor | String | '#fff' | 数字框背景颜色 | | size | Number | 24 | 数字框字体大小 | | color | String | '#333' | 数字框字体颜色 | | scale | Boolean | false | 是否缩放数字(0.9) | | colonSize | Number | 28 | 冒号/单位文字大小 | | colonColor | String | '#333' | 冒号/单位文字颜色 | | days | Boolean | false | 是否显示天数 | | hours | Boolean | true | 是否显示小时 | | minutes | Boolean | true | 是否显示分钟 | | seconds | Boolean | true | 是否显示秒数 | | isColon | Boolean | true | 是否使用冒号分隔,false则显示单位文字 | | unitEn | Boolean | false | 单位是否使用英文,仅在seconds启用且isColon为false时有效 | | returnTime | Boolean | false | 是否返回剩余时间事件 | | isMs | Boolean | false | 是否显示毫秒 | | msWidth | Number | 32 | 毫秒框宽度 | | msSize | Number | 24 | 毫秒字体大小 | | msColor | String | '#333' | 毫秒字体颜色 | | autoStart | Boolean | true | 是否自动开始倒计时 | | format | Object | {} | 自定义格式化文本,如{day:'天',hour:'时',minute:'分',second:'秒'} | | showZero | Boolean | true | 是否显示前导零 | | interval | Number | 1000 | 更新频率(毫秒) |
事件
| 事件名 | 回调参数 | 说明 | | ----- | ------- | ---- | | start | {day,hour,minute,second,seconds} | 倒计时开始时触发 | | end | {} | 倒计时结束时触发 | | time | {day,hour,minute,second,seconds} | 倒计时进行中触发,需设置returnTime为true | | pause | {seconds} | 倒计时暂停时触发 | | resume | {seconds} | 倒计时恢复时触发 |
方法
| 方法名 | 参数 | 说明 | | ----- | --- | ---- | | start | - | 开始倒计时 | | pause | - | 暂停倒计时 | | resume | - | 恢复倒计时 | | stop | - | 停止倒计时 | | restart | - | 重新开始倒计时 |
样式主题
组件内置了多种预设主题样式,可以通过添加以下类名来使用:
| 类名 | 说明 | | --- | --- | | zx-theme-dark | 深色主题 | | zx-theme-primary | 主色调主题(蓝色) | | zx-theme-danger | 危险色主题(红色) | | zx-theme-success | 成功色主题(绿色) |
样式效果
组件还支持以下额外的样式效果:
| 类名 | 说明 | | --- | --- | | zx-flat | 扁平化风格,无边框 | | zx-rounded | 圆角风格 | | zx-shadowed | 带阴影效果 | | zx-number-change | 数字变化动画效果 | | zx-ripple | 点击涟漪效果 | | zx-blink | 冒号闪烁效果(用于冒号元素) |
使用方法
基础用法
<ZxCountdown :time="60" />显示天数
<ZxCountdown :time="86400" :days="true" />使用文字单位
<ZxCountdown :time="3600" :isColon="false" />自定义样式
<ZxCountdown
:time="3600"
backgroundColor="#ff4757"
borderColor="#ff4757"
color="#ffffff"
colonColor="#ff4757"
:scale="true"
/>使用主题
<view class="zx-theme-primary">
<ZxCountdown :time="60" />
</view>组合样式效果
<view class="zx-theme-danger zx-rounded zx-shadowed">
<ZxCountdown :time="60" />
</view>显示毫秒
<ZxCountdown :time="60" :isMs="true" />使用时间戳
<ZxCountdown :timestamp="1640966400000" />暂停和恢复
<ZxCountdown ref="countdownRef" :time="60" />
<button @click="countdownRef.pause()">暂停</button>
<button @click="countdownRef.resume()">恢复</button>不自动开始
<ZxCountdown :time="60" :autoStart="false" ref="countdownRef" />
<button @click="countdownRef.start()">开始</button>自定义格式化文本
<ZxCountdown
:time="3600"
:isColon="false"
:format="{day:'D',hour:'H',minute:'M',second:'S'}"
/>