我们 知道 构成前端的三大语言有: ht ML 、 css 和 js ,其中最为神秘的便是 css ,为什么这么说呢?自从动画、过度等属性的出现,可以说只有你想不到,就没有做不到~
上一篇文章介绍了一种手机充电动画效果,今天就延续一下,这个相比于上篇的就有点 简单 了, 不过 为了女 朋友 ,特意就写一下吧~
特效: 电池充电特效 ,整体特效可在最上方看到
前置知识:
要想完成这个特效,就必须要知道一些前置的属性,简单介绍一下吧:
animation 、 transform 和 filter 这三个就不多做介绍了,基本上所有的动画都 会用 到这两个属性。【推荐学习:css视频教程】
box -s hadow
box-shadow :阴影
用法:box-shadow: h-shadow v-shadow blur s PR ead color inset;
h-shadow :必填的,水平阴影的位置,允许负值 v-shadow :必需的。垂直阴影的位置。允许负值 blur :模糊 距离 spread :阴影的大小 color :阴影的颜色 inset :从外层的阴影( 开始 时) 改变 阴影内侧阴影border-radius
border-radius :设置 圆 角
可设置四个值,与 m arg in 、 padding 的使用方法一样
也就是每个 半 径的四个值的顺序是: 左上角 , 右上角 , 右下角 , 左下角 。
如果省略左下角,右上角是相同的。 如果省略右下角,左上角是相同的。 如果省略右上角,左上角是相同的。linear-gra die nt()
linear-gradient() :渐变,用于创建一个表示两种或多种颜色线性渐变的图片。
用法: background -i mage: linear-gradient(direction, color-stop1, color-stop2, .. .);
direction : 用角度值指定渐变的 方向 (或角度),制定方向 color... : 依次有什么颜色变为什么颜色 @H_799_ 126 @容器我们设置两个 div ,一个座位底部的容器,上面弄个小盖子,主要通过 border-radius 设置下周边的圆角,并且加入 box-shadow 加入阴影,增强立体感
充电效果
这里可以使用定位布局,通过 top 来控制水的位置, top 的值越大水越低, top 的值越小水越高
我们把水位设置为80%,同时通过 linear-gradient() 来设置水的一个渐变色:
那么动画就很简单了,只需要控制 top 值就会造成水的上升,像这样
这时需要注意的点是:
最上方我们的容器设置了圆角,所以在动画到100%的时候,要和容器的圆角一样 水位在移动,为了增强立体感,可设置阴影,可以以有个递进的效果,所以颜色最好稍微变深 一点 ,并且颜色最好偏近 变色还是通过: filter: hue-rotate(); 这个属性控制.content{ //容器 border-radius: 15px 15px 5px 5px; & am p; : :after { pos IT ion: absolute; top: 80%; background: linear-gradient(to bottom, # 7 abc ff 0%, #00BCD4 44%, #2196F3 100%); border-radius: 0px 0px 5px 5px; box-shadow: 0 14px 28px rgba(33, 150, 243, 0), 0 10px 10px rgba(9, 188, 215, 0.08); animation: change 10s linear infinite; filter: hue-rotate(90 deg ); } } @keyframes change { 30% { box-shadow: 0 14px 28px rgba(0, 150, 136, 0.83), 0px 4px 10px rgba(8, 117, 134, 0.4); } 50%{ filter: hue-rotate(60deg); } 80% { top: 20%; border-radius: 0 0 5px 5px; box-shadow: 0 14px 28px rgba(6, 136, 153, 0.2), 0 10px 10px rgba(12, 10, 112, 0.08); } 100% { top: 0%; filter: hue-rotate(0deg); border-radius: 15px 15px 5px 5px; box-shadow: 0 14px 28px rgba(7, 93, 104, 0), 0 10px 10px rgba(31, 3, 68, 0.4); } }
水波纹特效
这个特效相信大家都见过,其思想就是在上面的大概位置上设置 背景颜色 ,用相同的底色覆盖,
然后用到 translate 这个属性,通过转化 x 、 y 值,然后通过不停的旋转角度,至于数值为啥是这个值,我也搞不清楚。。。有知道的小伙伴可以在评论区留言.
p{ //复盖 border-radius: 45% 47% 44% 42%; transform: translate(-50%, 0); animation: move 10s linear infinite; } @keyframes move { 100% { transform: translate(-50%, -160px) rotate(720deg); } }
此时,我们发现这个效果并不太真实,进行多覆盖两个,改变旋转值和 border-radius 的值来设置水面不重叠,但又有差距的效果
p{ &:nth-child(2){ border-radius: 38% 46% 43% 47%; transform: translate(-50%, 0) rotate(-135deg); } &:nth-child(3){ border-radius: 42% 46% 37% 40%; transform: translate(-50%, 0) rotate(135deg); } }
此时的效果就非常真实了
End
不得不说 css 真的很神奇,最神秘的莫过于 css ,喜欢的点个赞??支持下吧(● ̄(エ) ̄●)
(学习视频分享:web前端)
以上就是纯CSS实现水波纹的电池充电动画特效的详细内容,更多请关注其它相关文章!
总结
以上是 为你收集整理的 纯CSS实现水波纹的电池充电动画特效 全部内容,希望文章能够帮你解决 纯CSS实现水波纹的电池充电动画特效 所遇到的问题。
如果觉得 网站内容还不错, 推荐好友。
查看更多关于纯CSS实现水波纹的电池充电动画特效的详细内容...