基于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 onmouseout 解决办法
Jul 17 Javascript
jQuery绑定事件不执行但alert后可以正常执行
Jun 03 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
Aug 28 Javascript
Web程序员必备的7个JavaScript函数
Jun 14 Javascript
详解vue-cli + webpack 多页面实例应用
Apr 25 Javascript
Angular4实现图片上传预览路径不安全的问题解决
Dec 25 Javascript
关于HTTP传输中gzip压缩的秘密探索分析
Jan 12 Javascript
ES6之模版字符串的具体使用
May 17 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
Sep 18 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
Nov 13 Javascript
TypeScript的安装、使用、自动编译的实现
Apr 10 Javascript
小程序表单认证布局及验证详解
Jun 19 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
咖啡的种类和口感
2021/03/03 新手入门
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
php的memcache类分享(memcache队列)
2014/03/26 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
2014/11/03 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
JavaScript 应用类库代码
2008/06/02 Javascript
JSON JQUERY模板实现说明
2010/07/03 Javascript
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
3分钟快速搭建nodejs本地服务器方法运行测试html/js
2017/04/01 NodeJs
Vue.js实现分页查询功能
2020/11/15 Javascript
Vue中的slot使用插槽分发内容的方法
2018/03/01 Javascript
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
python中使用mysql数据库详细介绍
2015/03/27 Python
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
详解Python中的变量及其命名和打印
2016/03/11 Python
Python中py文件引用另一个py文件变量的方法
2018/04/29 Python
Django框架验证码用法实例分析
2019/05/10 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
Python reques接口测试框架实现代码
2020/07/28 Python
html5 touch事件实现页面上下滑动效果【附代码】
2016/03/10 HTML / CSS
追悼会上的答谢词
2014/01/10 职场文书
上班玩手机检讨书
2014/02/17 职场文书
剪彩仪式主持词
2014/03/19 职场文书
保护环境倡议书
2014/04/14 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
学校国庆节活动总结
2015/03/23 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
2015年科学教研组工作总结
2015/07/22 职场文书