巧用 CSS 實現酷炫的充電動畫

2021-10-01 16:02:17 字數 2502 閱讀 4693

循序漸進,看看只使用 css ,可以鼓搗出什麼樣的充電動畫效果。

**** wap.youxs.org

當然,電池充電,首先得用 css 畫乙個電池,這個不難,隨便整乙個:

歐了,勉強就是它了。有了電池,那接下來直接充電吧。最最簡單的動畫,那應該是用色彩把整個電池灌滿即可。

方法很多,**也很簡單,直接看效果:

有內味了,如果要求不高,這個勉強也就能夠交差了。通過藍色漸變表示電量,通過色塊的位移動畫實現充電的動畫。但是總感覺少了點什麼。

如果要繼續優化的話,需要新增點細節。

我們知道,低電量時,電量通常表示為紅色,高電量時表示為綠色。再給整個色塊新增點陰影的變化,呼吸的感覺,讓充電的效果看起來確實是在動。

到這裡,其實只有乙個知識點:

我們無法對乙個漸變色直接進行 animation ,這裡通過濾鏡對色相進行調整,從而實現了漸變色的變換動畫。

上述例子完整的 demo: codepen demo -- battery animation one

ok,剛剛算乙個小里程碑,接下來再進一步。電量的頂部為一條直線有點呆呆的感覺,這裡我們進行改造一下,如果能將頂部直線,改為波浪滾動,效果會更為逼真一點。

改造之後的效果:

使用 css 實現這種波浪滾動效果,其實只是用了一種障眼法,具體的可以我早期寫的這篇文章:

純 css 實現波浪效果!

這裡的乙個知識點就是上述說的使用 css 實現簡易的波浪效果,通過障眼法實現,看看圖就明白了:

上述例子完整的 demo: codepen demo -- battery animation two

ok,到這,上述效果加上數字變化已經算是乙個比較不錯的效果了。當然上面的效果看上去還是很 css 的,就是一眼看到就覺得用 css 是可以做到的。

那下面這個呢?

用安卓手機的同學肯定不陌生,這個是安卓手機在充電的時候的效果。看到這個我就很好奇,使用 css 能做到嗎?

經過一番嘗試,發現使用 css 也是可以很好的模擬這種動畫效果:

上述 gif 錄製的效果圖是完全使用 css 模擬的效果。

上述例子完整的 demo: huawei battery charging animation

拆解一下知識點,最主要的其實是用到了filter: contrast()以及filter: blur()這兩個濾鏡,可以很好的實現這種融合效果。

單獨將兩個濾鏡拿出來,它們的作用分別是:

filter: blur(): 給影象設定高斯模糊效果。

filter: contrast(): 調整影象的對比度。

但是,當他們「合體」的時候,產生了奇妙的融合現象。

先來看乙個簡單的例子:

仔細看兩圓相交的過程,在邊與邊接觸的時候,會產生一種邊界融合的效果,通過對比度濾鏡把高斯模糊的模糊邊緣給乾掉,利用高斯模糊實現融合效果。

當然,這裡也是可以加上顏色的變換,效果也很不錯:

上述例子完整的 demo: huawei battery charging animation

通過調節filter: blur()filter: contrast()屬性的值,動畫效果其實會有很大程度的變化,好的效果需要不斷的除錯。當然,經驗在其中也是發揮了很重要的作用,說到底還是要多嘗試。

本文給出的幾個充電動畫,效果漸進增強,本文只指出了最核心的知識點。但是在實際輸出的過程中有很多小細節是本文沒有提及的,感興趣的同學還是應該點進 demo 好好看看原始碼或者自己動手實現一遍。

好了,本文到此結束,希望對你有幫助 :)

如果還有什麼疑問或者建議,可以多多交流,原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。

用 CSS 實現酷炫的動畫充電效果

循序漸進,看看只使用 css 可以鼓搗出什麼樣的充電動畫效果。當然,電池充電,首先得用 css 畫乙個電池,這個不難,隨便整乙個 歐了,勉強就是它了。有了電池,那接下來直接充電吧。最最簡單的動畫,那應該是用色彩把整個電池灌滿即可。方法很多,也很簡單,直接看效果 有內味了,如果要求不高,這個勉強也就能...

幾個炫酷且實用的CSS動畫效果

效果圖 滑鼠滑入按鈕時,按鈕中原本的文字從下方滑走,同時在原位置上,按鈕文字單個挨個浮現。原本文字和後面單個浮現的文字內容可不一致,可根據需要進行調整 實現思路 用div模擬button按鈕,並將按鈕文字單個單個的放在其子元素span中,用於後面的單個顯示。而滑鼠沒有觸發時的靜止狀態文字則由div按...

純css實現炫酷側邊欄

有疑問的小夥伴可以深入 學習?網頁展示 pc端更佳 html結構 lang en dir ltr charset utf 8 側邊欄title rel stylesheet type text css href css siderbar.css href css font awesome.min.c...