开发者社区> damon风> 正文

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

简介: 前言:   此事例是在vue组件中,使用canvas实现倒计时动画的效果。其实,实现效果的逻辑跟vue没有关系,只要读懂canvas如何实现效果的这部分逻辑就可以了   canvas动画的原理:利用定时器,给定合理的帧数,不断的清除画布,再重绘图形,即呈现出动画效果。
+关注继续查看

前言:

  此事例是在vue组件中,使用canvas实现倒计时动画的效果。其实,实现效果的逻辑跟vue没有关系,只要读懂canvas如何实现效果的这部分逻辑就可以了
  canvas动画的原理:利用定时器,给定合理的帧数,不断的清除画布,再重绘图形,即呈现出动画效果。 

让我们先看下效果

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

      

 

使用

npm
  npm install vue-canvas-countdown --save-dev
es6 import
  import countDown from 'vue-canvas-countdown'
源码、demo、使用方法请参考github:https://github.com/Damon0820/vue-countdown

 

左手右手一个慢动作

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

 

            

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

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

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

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

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

 

修炼js宝典,get canvas技能

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

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【Vue 开发实战】拓展篇 # 47:如何发布组件到npm以及nrm的介绍
【Vue 开发实战】拓展篇 # 47:如何发布组件到npm以及nrm的介绍
24 0
VUE学习的bug记录-npm run dev
VUE学习的bug记录-npm run dev
23 0
Vue中nodejs、npm、cnmp和webpack的关系
vue更新完前端代码不用刷新页面直接出结果,贼舒服;
22 0
Vue框架中报 npm ERR code EINTEGRITY
在使用taro 安装依赖包的时候,经常出现npm ERR! code EINTEGRITY的问题,应该是npm本地的缓存造成的。
46 0
Vue:npm run serve 到底做了什么?
在 vue-cli2或者 vue-cli3 中,当我们创建好一个项目,我们要通过 npm run dev(vue-cli2的命令,vue-cli3之后用npm run serve,原理都一样,只不过是换了一下名字而已)运行一个项目。或者通过 npm run build 打包一个项目。
156 0
Vue实现一个全屏加载插件并发布至npm仓库
Vue实现一个全屏加载插件并发布至npm仓库
112 0
npm工具运行Vue项目
npm工具运行Vue项目
20 0
Vue npm yarn webpack 遇到无法加载文件禁止运行脚本解决方案
Vue npm yarn webpack 遇到无法加载文件禁止运行脚本解决方案
44 0
如何发布自己的npm包(vue组件)
如何发布自己的npm包(vue组件)
152 0
如何发布自己的npm包(vue组件)
如何发布自己的npm包(vue组件)
31 0
+关注
damon风
温文尔雅
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
基于webpack和npm的前端组件化实践
立即下载
基于webpack和npm的前端组件化实践
立即下载
基于FAAS构建NPM同步CDN
立即下载