vue+canvas實(shí)現(xiàn)炫酷時(shí)鐘效果的倒計(jì)時(shí)插件(已發(fā)布到npm的vue2插件,開箱即用)
前言:
此事例是在vue組件中,使用canvas實(shí)現(xiàn)倒計(jì)時(shí)動(dòng)畫的效果。其實(shí),實(shí)現(xiàn)效果的邏輯跟vue沒有關(guān)系,只要讀懂canvas如何實(shí)現(xiàn)效果的這部分邏輯就可以了
canvas動(dòng)畫的原理:利用定時(shí)器,給定合理的幀數(shù),不斷的清除畫布,再重繪圖形,即呈現(xiàn)出動(dòng)畫效果?!?/p>
讓我們先看下效果
說明:此gif清晰度很低,因?yàn)檗D(zhuǎn)成gif圖的時(shí)候,質(zhì)量受損,幀數(shù)減少,所以倒計(jì)時(shí)轉(zhuǎn)到紅色時(shí)候看起來變的很模糊。但是實(shí)際在瀏覽器上效果全程都是很清晰和連貫的
使用
npm npm install vue-canvas-countdown --save-dev es6 import import countDown from 'vue-canvas-countdown'
源碼、demo、使用方法請(qǐng)參考github:https://github.com/Damon0820/vue-countdown
左手右手一個(gè)慢動(dòng)作
說明:扇形顏色是漸變的(仔細(xì)看圖:扇形逆時(shí)針方向漸變顏色,內(nèi)側(cè)淺,外側(cè)深)
動(dòng)畫步驟分析:假如設(shè)定倒計(jì)時(shí)總時(shí)間為15s, 變黃色時(shí)機(jī)為10s,變紅色時(shí)機(jī)為5s。
1、開始倒計(jì)時(shí)后顏色為綠色。綠色含義是:倒計(jì)時(shí)的時(shí)間離結(jié)束時(shí)間還很長。
2、10s后變黃色。黃色的含義是:倒計(jì)時(shí)的時(shí)間離結(jié)束時(shí)間挺近了,起警告作用。動(dòng)畫中,出現(xiàn)快速旋轉(zhuǎn)的扇形。
3、5s后變紅色。紅色的含義是:倒計(jì)時(shí)的時(shí)間馬上就要結(jié)束了,起強(qiáng)烈警告作用。動(dòng)畫中,快速旋轉(zhuǎn)的扇形速度加快。
4、0s倒計(jì)時(shí)結(jié)束。動(dòng)畫消失。靜態(tài)圓形框中顯示提示文字。
修煉js寶典,get canvas技能
之前對(duì)于canvas一竅不通,網(wǎng)上查了資料,介紹api的時(shí)候過于簡單,也不好理解,看別人寫的示例代碼,更是懵逼。而后,回歸原始,修煉經(jīng)典的《JavaScript高級(jí)程序設(shè)計(jì)》這本js寶典。書本二三十頁的介紹canvas部分,系統(tǒng)的學(xué)習(xí)了一下。邊看邊寫效果,20多頁的書看完了,效果也寫出來了。對(duì)于新手,我推薦找到系統(tǒng)介紹canvas的資料,先花一兩個(gè)先熟悉下canvas的api,然后實(shí)現(xiàn)效果就是分分鐘的事了
總結(jié)
以上所述是小編給大家介紹的vue+canvas實(shí)現(xiàn)炫酷時(shí)鐘效果的倒計(jì)時(shí)插件(已發(fā)布到npm的vue2插件,開箱即用),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
詳解Vue2+Echarts實(shí)現(xiàn)多種圖表數(shù)據(jù)可視化Dashboard(附源碼)
本篇文章主要介紹了詳解Vue2+Echarts實(shí)現(xiàn)多種圖表數(shù)據(jù)可視化Dashboard(附源碼),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03Vue3實(shí)現(xiàn)canvas畫布組件自定義畫板實(shí)例代碼
Vue?Canvas是一個(gè)基于Vue.js的輕量級(jí)畫板組件,旨在提供一個(gè)簡易的畫布功能,用戶可以在網(wǎng)頁上進(jìn)行自由繪圖,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-09-09在vue項(xiàng)目中引入scss并使用scss樣式詳解
SCSS是一種CSS預(yù)處理語言,定義了一種新的專門的編程語言,編譯后形成正常的css文件,為css增加一些編程特性,這篇文章主要給大家介紹了關(guān)于在vue項(xiàng)目中引入scss并使用scss樣式的相關(guān)資料,需要的朋友可以參考下2022-07-07Vue項(xiàng)目中如何運(yùn)用vuex的實(shí)戰(zhàn)記錄
如果說是JQuery是手工作坊,那么Vue.js就像是一座工廠,雖然Vue.js做的任何事情JQuery都可以做,但無論是代碼量還是流程規(guī)范性都是前者較優(yōu),下面這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目中如何運(yùn)用vuex的相關(guān)資料,需要的朋友可以參考下2021-09-09vue中多個(gè)倒計(jì)時(shí)實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了vue中多個(gè)倒計(jì)時(shí)實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Vue3使用ref和reactive管理狀態(tài)的代碼示例
ref 和 reactive 是 Composition API 中用來聲明響應(yīng)式數(shù)據(jù)的兩個(gè)核心函數(shù),在 Vue 3 中,使用 setup 語法糖可以更簡潔地使用這些功能,本文將探討如何使用 ref 和 reactive 來管理狀態(tài),并解釋它們之間的區(qū)別,需要的朋友可以參考下2024-09-09Python實(shí)現(xiàn)圖片二值化的詳細(xì)代碼
圖像二值化就是將圖像上的像素點(diǎn)的“灰度值”設(shè)置為[0,?0,?0]或[255,?255,?255],即要么純黑,要么純白,這篇文章主要介紹了Python實(shí)現(xiàn)圖片二值化,需要的朋友可以參考下2024-05-05