<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          巧用 CSS 實現(xiàn)酷炫的充電動畫

          共 2407字,需瀏覽 5分鐘

           ·

          2021-03-05 18:37

          今天的分享非常有意思,純 CSS 實現(xiàn)華為的充電效果。

          正文從這里開始,

          循序漸進(jìn),看看只使用 CSS ,可以鼓搗出什么樣的充電動畫效果。

          畫個電池

          當(dāng)然,電池充電,首先得用 CSS 畫一個電池,這個不難,隨便整一個:

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

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

          有內(nèi)味了,如果要求不高,這個勉強(qiáng)也就能夠交差了。通過藍(lán)色漸變表示電量,通過色塊的位移動畫實現(xiàn)充電的動畫。但是總感覺少了點什么。

          增加陰影及顏色的變化

          如果要繼續(xù)優(yōu)化的話,需要添加點細(xì)節(jié)。

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

          知識點

          到這里,其實只有一個知識點:

          • 使用 filter: hue-rotate() 對漸變色彩進(jìn)行色彩過渡變換動畫

          我們無法對一個漸變色直接進(jìn)行 animation ,這里通過濾鏡對色相進(jìn)行調(diào)整,從而實現(xiàn)了漸變色的變換動畫。

          上述例子完整的 Demo:CodePen Demo -- Battery Animation One[1]

          添加波浪

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

          改造之后的效果:

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

          純 CSS 實現(xiàn)波浪效果![2]

          知識點

          這里的一個知識點就是上述說的使用 CSS 實現(xiàn)簡易的波浪效果,通過障眼法實現(xiàn),看看圖就明白了:

          上述例子完整的 Demo:CodePen Demo -- Battery Animation Two[3]

          OK,到這,上述效果加上數(shù)字變化已經(jīng)算是一個比較不錯的效果了。當(dāng)然上面的效果看上去還是很 CSS 的,就是一眼看到就覺得用 CSS 是可以做到的。

          使用強(qiáng)大的 CSS 濾鏡實現(xiàn)安卓充電動畫效果

          那下面這個呢?

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

          經(jīng)過一番嘗試,發(fā)現(xiàn)使用 CSS 也是可以很好的模擬這種動畫效果:

          上述 Gif 錄制的效果圖是完全使用 CSS 模擬的效果。

          上述例子完整的 Demo:HuaWei Battery Charging Animation[4]

          知識點

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

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

          1. filter: blur():給圖像設(shè)置高斯模糊效果。
          2. filter: contrast():調(diào)整圖像的對比度。

          但是,當(dāng)他們“合體”的時候,產(chǎn)生了奇妙的融合現(xiàn)象。

          先來看一個簡單的例子:

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

          當(dāng)然,這種效果在之前的文章也多次提及過,更具體的,可以看看:

          • CSS 火焰?不在話下 [5]
          • 你所不知道的 CSS 濾鏡技巧與細(xì)節(jié)[6]

          顏色的變換

          當(dāng)然,這里也是可以加上顏色的變換,效果也很不錯:

          上述例子完整的 Demo:HuaWei Battery Charging Animation[7]

          容易忽視的點

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

          最后

          本文給出的幾個充電動畫,效果漸進(jìn)增強(qiáng),本文只指出了最核心的知識點。但是在實際輸出的過程中有很多小細(xì)節(jié)是本文沒有提及的,感興趣的同學(xué)還是應(yīng)該點進(jìn) Demo 好好看看源碼或者自己動手實現(xiàn)一遍。


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

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

          參考資料

          [1]

          CodePen Demo -- Battery Animation One: https://codepen.io/Chokcoco/pen/bGNqyra?editors=1100

          [2]

          純 CSS 實現(xiàn)波浪效果!: https://www.cnblogs.com/coco1s/p/7197662.html

          [3]

          CodePen Demo -- Battery Animation Two: https://codepen.io/Chokcoco/pen/qBErGoO

          [4]

          HuaWei Battery Charging Animation: https://codepen.io/Chokcoco/pen/vYExwvm

          [5]

          CSS 火焰?不在話下 : https://github.com/chokcoco/iCSS/issues/62

          [6]

          你所不知道的 CSS 濾鏡技巧與細(xì)節(jié): https://github.com/chokcoco/iCSS/issues/30

          [7]

          HuaWei Battery Charging Animation: https://codepen.io/Chokcoco/pen/vYExwvm

          [8]

          Github -- iCSS: https://github.com/chokcoco/iCSS


          iCSS,不止于 CSS,歡迎關(guān)注我 ↓


          瀏覽 52
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  狠狠操夜夜操 | 日韩精品福利视频 | 狼人入口国产 | 五月天亚洲丁香无码 | 国产日本在线观看 |