🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@ophiuchus/count-down

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ophiuchus/count-down

### 介绍

latest
npmnpm
Version
1.0.1
Version published
Weekly downloads
2
-81.82%
Maintainers
1
Weekly downloads
 
Created
Source

CountDown 倒计时

介绍

用于实时展示倒计时数值,支持毫秒精度。

引入

import Vue from 'vue';
import CountDown from '@ophiuchus/count-down';

Vue.use(CountDown);

代码演示

基础用法

time 属性表示倒计时总时长,单位为毫秒。

<sf-count-down :time="time" />
export default {
  data() {
    return {
      time: 30 * 60 * 60 * 1000,
    };
  },
};

自定义格式

通过 format 属性设置倒计时文本的内容。

<sf-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒" />

毫秒级渲染

倒计时默认每秒渲染一次,设置 millisecond 属性可以开启毫秒级渲染。

<sf-count-down millisecond :time="time" format="HH:mm:ss:SS" />

自定义样式

通过插槽自定义倒计时的样式,timeData 对象格式见下方表格。

注意:由于md编译问题,使用时请把 { {} }换成 {{}}

<sf-count-down :time="time">
  <template #default="timeData">
    <span class="block">{ { timeData.hours } }</span>
    <span class="colon">:</span>
    <span class="block">{ { timeData.minutes } }</span>
    <span class="colon">:</span>
    <span class="block">{ { timeData.seconds } }</span>
  </template>
</sf-count-down>
<style>
  .colon {
    display: inline-block;
    margin: 0 4px;
    color: #ee0a24;
  }
  .block {
    display: inline-block;
    width: 22px;
    color: #fff;
    font-size: 12px;
    text-align: center;
    background-color: #ee0a24;
  }
</style>

手动控制

通过 ref 获取到组件实例后,可以调用 startpausereset 方法。

<sf-count-down
  ref="countDown"
  millisecond
  :time="3000"
  :auto-start="false"
  format="ss:SSS"
  @finish="finish"
/>
<sf-grid clickable>
  <sf-grid-item text="开始" icon="play-circle-o" @click="start" />
  <sf-grid-item text="暂停" icon="pause-circle-o" @click="pause" />
  <sf-grid-item text="重置" icon="replay" @click="reset" />
</sf-grid>
import Toast from '@ophiuchus/toast';

export default {
  methods: {
    start() {
      this.$refs.countDown.start();
    },
    pause() {
      this.$refs.countDown.pause();
    },
    reset() {
      this.$refs.countDown.reset();
    },
    finish() {
      Toast('倒计时结束');
    },
  },
};

API

Props

参数说明类型默认值
time倒计时时长,单位毫秒number | string0
format时间格式stringHH:mm:ss
auto-start是否自动开始倒计时booleantrue
millisecond是否开启毫秒级渲染booleanfalse

format 格式

格式说明
DD天数
HH小时
mm分钟
ss秒数
S毫秒(1 位)
SS毫秒(2 位)
SSS毫秒(3 位)

Events

事件名说明回调参数
finish倒计时结束时触发-
change倒计时变化时触发timeData: TimeData

Slots

名称说明参数
default自定义内容timeData: TimeData

TimeData 格式

名称说明类型
days剩余天数number
hours剩余小时number
minutes剩余分钟number
seconds剩余秒数number
milliseconds剩余毫秒number

方法

通过 ref 可以获取到 CountDown 实例并调用实例方法,详见组件实例方法

方法名说明参数返回值
start开始倒计时--
pause暂停倒计时--
reset重设倒计时,若 auto-starttrue,重设后会自动开始倒计时--

样式变量

组件提供了下列 Less 变量,可用于自定义样式,使用方法请参考主题定制

名称默认值描述
@count-down-text-color@text-color-
@count-down-font-size@font-size-md-
@count-down-line-height@line-height-md-

常见问题

在 iOS 系统上倒计时不生效?

如果你遇到了在 iOS 上倒计时不生效的问题,请确认在创建 Date 对象时没有使用new Date('2020-01-01')这样的写法,iOS 不支持以中划线分隔的日期格式,正确写法是new Date('2020/01/01')

对此问题的详细解释:stackoverflow

Keywords

ui

FAQs

Package last updated on 26 Sep 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts