巧用 CSS 实现酷炫的充电动画

按部就班,看看只使用 CSS ,能够鼓捣出什么样的充电动画效果。css

 

画个电池

固然,电池充电,首先得用 CSS 画一个电池,这个不难,随便整一个:html

欧了,勉强就是它了。有了电池,那接下来直接充电吧。最最简单的动画,那应该是用色彩把整个电池灌满便可。git

方法不少,代码也很简单,直接看效果:github

有内味了,若是要求不高,这个勉强也就可以交差了。经过蓝色渐变表示电量,经过色块的位移动画实现充电的动画。可是总感受少了点什么。优化

 

增长阴影及颜色的变化

若是要继续优化的话,须要添加点细节。动画

咱们知道,低电量时,电量一般表示为红色,高电量时表示为绿色。再给整个色块添加点阴影的变化,呼吸的感受,让充电的效果看起来确实是在动。 spa

 

知识点

到这里,其实只有一个知识点:调试

  • 使用 filter: hue-rotate() 对渐变色彩进行色彩过渡变换动画

咱们没法对一个渐变色直接进行 animation ,这里经过滤镜对色相进行调整,从而实现了渐变色的变换动画。code

上述例子完整的 Demo: CodePen Demo -- Battery Animation Onehtm

添加波浪

ok,刚刚算一个小里程碑,接下来再进一步。电量的顶部为一条直线有点呆呆的感受,这里咱们进行改造一下,若是能将顶部直线,改成波浪滚动,效果会更为逼真一点。

改造以后的效果: 

使用 CSS 实现这种波浪滚动效果,其实只是用了一种障眼法,具体的能够我早期写的这篇文章:

纯 CSS 实现波浪效果!

 

知识点

这里的一个知识点就是上述说的使用 CSS 实现简易的波浪效果,经过障眼法实现,看看图就明白了:

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

OK,到这,上述效果加上数字变化已经算是一个比较不错的效果了。固然上面的效果看上去仍是很 CSS 的,就是一眼看到就以为用 CSS 是能够作到的。

 

使用强大的 CSS 滤镜实现安卓充电动画效果

那下面这个呢? 

用安卓手机的同窗确定不陌生,这个是安卓手机在充电的时候的效果。看到这个我就很好奇,使用 CSS 能作到吗?

通过一番尝试,发现使用 CSS 也是能够很好的模拟这种动画效果: 

上述 Gif 录制的效果图是彻底使用 CSS 模拟的效果。

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

 

知识点

拆解一下知识点,最主要的实际上是用到了 filter: contrast() 以及 filter: blur() 这两个滤镜,能够很好的实现这种融合效果。

单独将两个滤镜拿出来,它们的做用分别是:

  1. filter: blur(): 给图像设置高斯模糊效果。
  2. filter: contrast(): 调整图像的对比度。

可是,当他们“合体”的时候,产生了奇妙的融合现象。

先来看一个简单的例子:

仔细看两圆相交的过程,在边与边接触的时候,会产生一种边界融合的效果,经过对比度滤镜把高斯模糊的模糊边缘给干掉,利用高斯模糊实现融合效果。

固然,这种效果在以前的文章也屡次说起过,更具体的,能够看看:

 

颜色的变换

固然,这里也是能够加上颜色的变换,效果也很不错: 

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

 

容易忽视的点

经过调节 filter: blur() 及 filter: contrast() 属性的值,动画效果其实会有很大程度的变化,好的效果须要不断的调试。固然,经验在其中也是发挥了很重要的做用,说到底仍是要多尝试。

 

最后

本文给出的几个充电动画,效果渐进加强,本文只指出了最核心的知识点。可是在实际输出的过程当中有不少小细节是本文没有说起的,感兴趣的同窗仍是应该点进 Demo 好好看看源码或者本身动手实现一遍。

更多精彩 CSS 技术文章汇总在个人 Github -- iCSS ,持续更新,欢迎点个 star 订阅收藏。

好了,本文到此结束,但愿对你有帮助 :)

若是还有什么疑问或者建议,能够多多交流,原创文章,文笔有限,才疏学浅,文中如有不正之处,万望告知。

相关文章
相关标签/搜索