vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)


Posted in Javascript onNovember 05, 2018

前言:

此事例是在vue组件中,使用canvas实现倒计时动画的效果。其实,实现效果的逻辑跟vue没有关系,只要读懂canvas如何实现效果的这部分逻辑就可以了

canvas动画的原理:利用定时器,给定合理的帧数,不断的清除画布,再重绘图形,即呈现出动画效果。 

让我们先看下效果

  说明:此gif清晰度很低,因为转成gif图的时候,质量受损,帧数减少,所以倒计时转到红色时候看起来变的很模糊。但是实际在浏览器上效果全程都是很清晰和连贯的

vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)

使用

npm
 npm install vue-canvas-countdown --save-dev
es6 import
 import countDown from 'vue-canvas-countdown'

源码、demo、使用方法请参考github:https://github.com/Damon0820/vue-countdown

左手右手一个慢动作

说明:扇形颜色是渐变的(仔细看图:扇形逆时针方向渐变颜色,内侧浅,外侧深)

 vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)

vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)

vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)

动画步骤分析:假如设定倒计时总时间为15s, 变黄色时机为10s,变红色时机为5s。

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

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

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

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

修炼js宝典,get canvas技能

    之前对于canvas一窍不通,网上查了资料,介绍api的时候过于简单,也不好理解,看别人写的示例代码,更是懵逼。而后,回归原始,修炼经典的《JavaScript高级程序设计》这本js宝典。书本二三十页的介绍canvas部分,系统的学习了一下。边看边写效果,20多页的书看完了,效果也写出来了。对于新手,我推荐找到系统介绍canvas的资料,先花一两个先熟悉下canvas的api,然后实现效果就是分分钟的事了

总结

以上所述是小编给大家介绍的vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript入门基础之私有变量
Feb 23 Javascript
JQuery datepicker 使用方法
May 20 Javascript
jquery实现奇偶行赋值不同css值
Feb 17 Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
Aug 07 Javascript
jQuery中unbind()方法用法实例
Jan 19 Javascript
jQuery实现的精美平滑二级下拉菜单效果代码
Mar 28 Javascript
JS查找字符串中出现次数最多的字符
Sep 05 Javascript
分享一道关于闭包、bind和this的面试题
Feb 20 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
Aug 18 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
Oct 20 Javascript
vue+element树组件 实现树懒加载的过程详解
Oct 21 Javascript
vue h5移动端禁止缩放代码
Oct 28 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
Nov 05 #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
You might like
PHP关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
图片之间的切换
2006/06/26 Javascript
用js实现多域名不同文件的调用方法
2007/01/12 Javascript
javascript表单验证 - Parsley.js使用和配置
2013/01/25 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
2013/05/06 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
JavaScript中string对象
2015/06/12 Javascript
jQuery实现的AJAX简单弹出层效果代码
2015/11/26 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
2016/04/04 Javascript
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
[00:20]TI9不朽观赛名额抽取
2019/08/05 DOTA
Python常用内置模块之xml模块(详解)
2017/05/23 Python
Python编程二分法实现冒泡算法+快速排序代码示例
2018/01/15 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
Python函数装饰器实现方法详解
2018/12/22 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
html5使用canvas压缩图片的示例代码
2018/09/11 HTML / CSS
测绘工程个人的自我评价
2013/11/23 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
首次购房证明
2015/06/19 职场文书
家庭教育培训学习心得体会
2016/01/14 职场文书
浅谈如何写好演讲稿?
2019/06/12 职场文书
导游词之无锡华莱坞
2019/12/02 职场文书
Elasticsearch 数据类型及管理
2022/04/19 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
2022/12/24 Python