基于vue2的canvas时钟倒计时组件

今天给大家介绍一款基于vue2的canvas时钟倒计时组件,这个时钟倒计时组件采用canvas动画的炫酷动画效果形式,根据剩余时间的多少变换颜色和旋转扇形的速度,适合抢购、拍卖、下注等业务场景,且对移动端友好。

查看演示

具体步骤分析:

假如设定倒计时总时间为15s, 变黄色时机为10s,变红色时机为5s。

1、开始倒计时后颜色为绿色。绿色含义是:倒计时的时间离结束时间还很长。

2、10s后变黄色。黄色的含义是:倒计时的时间离结束时间挺近了,起警告作用。动画中,出现快速旋转的扇形。

3、5s后变红色。红色的含义是:倒计时的时间马上就要结束了,起强烈警告作用。动画中,快速旋转的扇形速度加快。

4、0s倒计时结束。动画消失。静态圆形框中显示提示文字。

安装

我们使用npm安装。

npm install vue-canvas-countdown --save-dev
知识兔

使用

首先在模板文件中加入组件信息。

<template>
  <div id="app" @click="fireCD">
    <div class="demo">
      <countDown 
        :fire="fire"
        time="15"
        :tiping="tiping"
        :tipend="tipend"
        @onEnd="onEnd"/>
     </div>
  </div>
</template>
知识兔

然后加入js部分代码:

<script>

import countDown from 'vue-canvas-countdown'
export default {
  name: 'App',
  components: {
    countDown
  },
  data () {
    return {
      fire: 0,
      tiping: {
        text: '倒计时进行中',
        color: '#fff'
      },
      tipend: {
        text: '倒计时结束',
        color: '#fff'
      }
    }
  },
  methods: {
    fireCD () {
      // 配置参数(更多配置如下表)
      this.tiping = {
        text: '请下注',
        color: '#fff'
      }
      this.tipend = {
        text: '停止下注',
        color: '#fff'
      }

      // 启动倒计时(效果如上图所示)      
      this.fire++ 
    },
    onEnd () {
      console.log('倒计时结束的回调函数')
    }
  }
}
</script>
知识兔

属性选项

属性类型单位默认值备注
fire:[Number]-200必选,在父组件this.fire++ 即可启动倒计时
width,height:[Number]px200 200设置宽高
bgCir:[String]-rgba(0, 0, 0, .6)倒计时圆盘背景颜色
time:[Number]秒/s15倒计时所用
statusChange:[Array]毫秒/ms[10000, 500]倒计时状态改变的时机/时间点(绿=>黄=>红)
tiping:[Object]-{text: '倒计时', color: '#fff'}倒计时进行时的静态文本内容和颜色(注意:color和text都得设置)
tipend:[Object]-{text: 'END', color: '#fff'}倒计时结束时的静态文本内容和颜色(注意:color和text都得设置)

项目地址:https://github.com/Damon0820/vue-countdown

计算机