基于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 隔行换色函数代码
Oct 24 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
Nov 14 Javascript
jquery在Chrome下获取图片的长宽问题解决
Mar 20 Javascript
js综合应用实例简单的表格统计
Sep 03 Javascript
浅析Node在构建超媒体API中的作用
Jul 30 Javascript
JavaScript编写推箱子游戏
Jul 07 Javascript
Vue.js教程之计算属性
Nov 11 Javascript
js获取浏览器和屏幕的各种宽度高度
Feb 22 Javascript
js读取本地文件的实例
Dec 22 Javascript
简述vue中的config配置
Jan 23 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
Apr 25 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
Aug 03 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
说明的比较细的php 正则学习实例
2008/07/30 PHP
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
yii2 url重写并隐藏index.php方法
2018/12/10 PHP
PHP实现PDO操作mysql存储过程示例
2019/02/13 PHP
encode脚本和normal脚本混用的问题与解决方法
2007/03/08 Javascript
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
小白谈谈对JS原型链的理解
2016/05/03 Javascript
AngularJS 中的事件详解
2016/07/28 Javascript
AngularJS的ng-click传参的方法
2017/06/19 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
vue 做移动端微信公众号采坑经验记录
2018/04/26 Javascript
原生js实现移动端Touch轮播图的方法步骤
2019/01/03 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
在Vue.js中使用TypeScript的方法
2020/03/19 Javascript
javascript实现简易数码时钟
2020/03/30 Javascript
Vue+Openlayers自定义轨迹动画
2020/09/24 Javascript
[22:20]初生之犊-TI4第5名LGD战队纪录片
2014/08/13 DOTA
深入解析Python中的__builtins__内建对象
2016/06/21 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
2018/12/19 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
Python grpc超时机制代码示例
2020/09/14 Python
用python制作个视频下载器
2021/02/01 Python
SQL语言面试题
2013/08/27 面试题
劳资人员岗位职责
2013/12/19 职场文书
大学校园生活自我鉴定
2014/01/13 职场文书
地球一小时宣传标语
2014/06/24 职场文书