基于vue2的canvas时钟倒计时组件步骤解析


Posted in Javascript onNovember 05, 2018

今天给大家介绍一款基于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] px 200 200 设置宽高
bgCir: [String] - rgba(0, 0, 0, .6) 倒计时圆盘背景颜色
time: [Number] 秒/s 15 倒计时所用
statusChange: [Array] 毫秒/ms [10000, 500] 倒计时状态改变的时机/时间点(绿=>黄=>红)
tiping: [Object] - {text: '倒计时', color: '#fff'} 倒计时进行时的静态文本内容和颜色(注意:color和text都得设置)
tipend: [Object] - {text: 'END', color: '#fff'} 倒计时结束时的静态文本内容和颜色(注意:color和text都得设置)

总结

以上所述是小编给大家介绍的基于vue2的canvas时钟倒计时组件步骤解析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript dom代码应用 简单的相册[firefox only]
Jun 12 Javascript
关于JavaScript中string 的replace
Apr 12 Javascript
在JavaScript应用中实现延迟加载的方法
Jun 25 Javascript
JavaScript如何自定义trim方法
Jul 28 Javascript
JS拖拽组件学习使用
Jan 19 Javascript
Bootstrap模仿起筷首页效果
May 09 Javascript
javascript实现右下角广告框效果
Feb 01 Javascript
javaScript 逻辑运算符使用技巧整理
May 03 Javascript
JS实现简单的点赞与踩功能示例
Dec 05 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
Aug 02 jQuery
vue $mount 和 el的区别说明
Sep 11 Javascript
如何手写简易的 Vue Router
Oct 10 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
Nov 05 #Javascript
使用vue2实现带地区编号和名称的省市县三级联动效果
Nov 05 #Javascript
vue router的基本使用和配置教程
Nov 05 #Javascript
微信小程序tabbar底部导航
Nov 05 #Javascript
详解webpack+ES6+Sass搭建多页面应用
Nov 05 #Javascript
浅谈vux之x-input使用以及源码解读
Nov 04 #Javascript
小程序实现选择题选择效果
Nov 04 #Javascript
You might like
基于文本的留言簿
2006/10/09 PHP
数据库中排序的对比及使用条件详解
2012/02/23 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
jQuery UI Autocomplete 1.8.16 中文输入修正代码
2012/04/16 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
2014/12/15 Javascript
JavaScript使用cookie记录临时访客信息的方法
2015/04/07 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
JavaScript必看小技巧(必看)
2016/06/07 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
.netcore+vue 实现压缩文件下载功能
2020/09/24 Javascript
[51:11]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS DT
2014/05/22 DOTA
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python opencv 直方图反向投影的方法
2018/02/24 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
python openpyxl模块的使用详解
2021/02/25 Python
仓库主管的岗位职责
2013/12/04 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
工厂见习报告范文
2014/10/31 职场文书
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
老人与海读书笔记
2015/06/26 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
Python爬取科目四考试题库的方法实现
2021/03/30 Python
Django集成富文本编辑器summernote的实现步骤
2021/05/31 Python