基于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 相关文章推荐
jquery ajax传递中文参数乱码问题及解决方法说明
Feb 07 Javascript
JS实现同时搜索百度和必应的方法
Jan 27 Javascript
跟我学习javascript的undefined与null
Nov 17 Javascript
深入理解jQuery事件绑定
Jun 02 Javascript
微信小程序-拍照或选择图片并上传文件
Jan 06 Javascript
详解通过JSON数据使用VUE.JS
May 26 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
Oct 27 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
Dec 07 Javascript
浅谈vue中组件绑定事件时是否加.native
Nov 09 Javascript
js实现时钟定时器
Mar 26 Javascript
uniapp开发小程序的经验总结
Apr 08 Javascript
vue实现移动端div拖动效果
Mar 03 Vue.js
基于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
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
php chr() ord()中文截取乱码问题解决方法
2008/09/08 PHP
PHP中比较时间大小实例
2014/08/21 PHP
PHP大转盘中奖概率算法实例
2014/10/21 PHP
php从数组中随机选择若干不重复元素的方法
2015/03/14 PHP
php获取系统变量方法小结
2015/05/29 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
jqGrid jQuery 表格插件测试代码
2011/08/23 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
jquery中JSON的解析方式
2015/03/16 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
2016/09/04 Javascript
JS动态添加选项案例分析
2016/10/17 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
Vue路由跳转问题记录详解
2017/06/15 Javascript
NodeJS自定义模块写法(详解)
2017/06/27 NodeJs
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
[02:18]《我与DAC》之工作人员:为了热爱DOTA2的玩家们
2018/03/28 DOTA
[47:20]DAC2018 4.4 淘汰赛 Optic vs Mineski 第一场
2018/04/05 DOTA
python3编码问题汇总
2016/09/06 Python
Python subprocess模块详细解读
2018/01/29 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
2019/08/21 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
Yahoo-PHP面试题4
2012/05/05 面试题
微博营销计划书
2014/01/10 职场文书
微笑服务标语
2014/06/24 职场文书
60句有关成长的名言
2019/09/04 职场文书
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js