vue+canvas實現(xiàn)炫酷時鐘效果的倒計時插件(已發(fā)布到npm的vue2插件,開箱即用)
前言:
此事例是在vue組件中,使用canvas實現(xiàn)倒計時動畫的效果。其實,實現(xiàn)效果的邏輯跟vue沒有關(guān)系,只要讀懂canvas如何實現(xiàn)效果的這部分邏輯就可以了
canvas動畫的原理:利用定時器,給定合理的幀數(shù),不斷的清除畫布,再重繪圖形,即呈現(xiàn)出動畫效果?!?/p>
讓我們先看下效果
說明:此gif清晰度很低,因為轉(zhuǎn)成gif圖的時候,質(zhì)量受損,幀數(shù)減少,所以倒計時轉(zhuǎn)到紅色時候看起來變的很模糊。但是實際在瀏覽器上效果全程都是很清晰和連貫的

使用
npm npm install vue-canvas-countdown --save-dev es6 import import countDown from 'vue-canvas-countdown'
源碼、demo、使用方法請參考github:https://github.com/Damon0820/vue-countdown
左手右手一個慢動作
說明:扇形顏色是漸變的(仔細看圖:扇形逆時針方向漸變顏色,內(nèi)側(cè)淺,外側(cè)深)

動畫步驟分析:假如設(shè)定倒計時總時間為15s, 變黃色時機為10s,變紅色時機為5s。
1、開始倒計時后顏色為綠色。綠色含義是:倒計時的時間離結(jié)束時間還很長。
2、10s后變黃色。黃色的含義是:倒計時的時間離結(jié)束時間挺近了,起警告作用。動畫中,出現(xiàn)快速旋轉(zhuǎn)的扇形。
3、5s后變紅色。紅色的含義是:倒計時的時間馬上就要結(jié)束了,起強烈警告作用。動畫中,快速旋轉(zhuǎn)的扇形速度加快。
4、0s倒計時結(jié)束。動畫消失。靜態(tài)圓形框中顯示提示文字。
修煉js寶典,get canvas技能
之前對于canvas一竅不通,網(wǎng)上查了資料,介紹api的時候過于簡單,也不好理解,看別人寫的示例代碼,更是懵逼。而后,回歸原始,修煉經(jīng)典的《JavaScript高級程序設(shè)計》這本js寶典。書本二三十頁的介紹canvas部分,系統(tǒng)的學(xué)習(xí)了一下。邊看邊寫效果,20多頁的書看完了,效果也寫出來了。對于新手,我推薦找到系統(tǒng)介紹canvas的資料,先花一兩個先熟悉下canvas的api,然后實現(xiàn)效果就是分分鐘的事了
總結(jié)
以上所述是小編給大家介紹的vue+canvas實現(xiàn)炫酷時鐘效果的倒計時插件(已發(fā)布到npm的vue2插件,開箱即用),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
elementUI的table表格改變數(shù)據(jù)不更新問題解決
最近在做vue的項目時發(fā)現(xiàn)了一個問題,今天就來解決一下,本文主要介紹了elementUI的table表格改變數(shù)據(jù)不更新問題解決,感興趣的可以了解一下2022-02-02
vue 查看dist文件里的結(jié)構(gòu)(多種方式)
本文通過三種方式給大家介紹了vue 查看dist文件里的結(jié)構(gòu),非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01
VUE在for循環(huán)里面根據(jù)內(nèi)容值動態(tài)的加入class值的方法
這篇文章主要介紹了VUE在for循環(huán)里面根據(jù)內(nèi)容值動態(tài)的加入class值的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-08-08
17個vue常用的數(shù)組方法總結(jié)與實例演示
這篇文章主要介紹了vue中常用的數(shù)組方法,包括:VUE數(shù)組轉(zhuǎn)換字符串,VUE數(shù)組遍歷,VUE數(shù)組過濾,VUE數(shù)組查詢,VUE數(shù)組排序等功能,需要的朋友可以參考下2022-12-12
vue中報錯Duplicate?keys?detected:'1'.?This?may?c
我們在vue開發(fā)過程中常會遇到一些錯誤,這篇文章主要給大家介紹了關(guān)于vue中報錯Duplicate?keys?detected:‘1‘.?This?may?cause?an?update?error的解決方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-03-03

