• 技术文章 >web前端 >css教程

    纯CSS实现水波纹的电池充电动画特效

    青灯夜游青灯夜游2022-04-18 11:07:39转载309
    本篇文章给大家介绍一下巧用 CSS实现水波纹的电池充电动画特效的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

    我们知道构成前端的三大语言有:htmlcssjs,其中最为神秘的便是css,为什么这么说呢?自从动画、过度等属性的出现,可以说只有你想不到,就没有做不到~

    上一篇文章介绍了一种手机充电动画效果,今天就延续一下,这个相比于上篇的就有点简单了,不过为了女朋友,特意就写一下吧~

    特效:电池充电特效,整体特效可在最上方看到

    前置知识:

    要想完成这个特效,就必须要知道一些前置的属性,简单介绍一下吧:

    animationtransformfilter 这三个就不多做介绍了,基本上所有的动画都会用到这两个属性。【推荐学习:css视频教程

    box-shadow

    box-shadow:阴影

    用法:box-shadow: h-shadow v-shadow blur spread color inset;

    border-radius

    border-radius:设置圆角

    可设置四个值,与 marginpadding 的使用方法一样

    也就是每个半径的四个值的顺序是:左上角右上角右下角左下角

    linear-gradient()

    linear-gradient():渐变,用于创建一个表示两种或多种颜色线性渐变的图片。

    用法:background-image: linear-gradient(direction, color-stop1, color-stop2, ...);

    容器

    我们设置两个 div ,一个座位底部的容器,上面弄个小盖子,主要通过border-radius设置下周边的圆角,并且加入box-shadow加入阴影,增强立体感

    1.png

    充电效果

    这里可以使用定位布局,通过top来控制水的位置,top的值越大水越低,top的值越小水越高

    我们把水位设置为80%,同时通过linear-gradient() 来设置水的一个渐变色:

    2.png

    那么动画就很简单了,只需要控制 top值就会造成水的上升,像这样

    3.gif

    这时需要注意的点是:

        .content{ //容器
            border-radius: 15px 15px 5px 5px;
            &::after{
                position: absolute;
                top: 80%;
                background: linear-gradient(to bottom, #7abcff 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(90deg);
            }
        }
        @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);
              }
            }

    4.gif

    水波纹特效

    这个特效相信大家都见过,其思想就是在上面的大概位置上设置背景颜色,用相同的底色覆盖,

    然后用到translate这个属性,通过转化xy值,然后通过不停的旋转角度,至于数值为啥是这个值,我也搞不清楚。。。有知道的小伙伴可以在评论区留言.

    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);
      }
    }

    5.gif

    此时,我们发现这个效果并不太真实,进行多覆盖两个,改变旋转值和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);
        }
    }

    此时的效果就非常真实了

    6.gif

    End

    不得不说css真的很神奇,最神秘的莫过于css,喜欢的点个赞??支持下吧(● ̄(エ) ̄●)

    (学习视频分享:web前端

    以上就是纯CSS实现水波纹的电池充电动画特效的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:掘金社区,如有侵犯,请联系admin@php.cn删除
    专题推荐:CSS 电池充电 动画
    上一篇:一文了解CSS3中的新特性 ::target-text 选择器 下一篇:聊聊如何用CSS box-shadow创建像素创意动画
    Web大前端开发直播班

    相关文章推荐

    • CSS3怎么做鼠标悬停360度旋转效果• 分享10个纯 CSS 实现的 Loading 效果• 聊聊使用CSS怎么实现毛玻璃特效(兼容方案探究)• 浅析CSS中怎么实现线性渐变(linear-gradient)• 如何利用CSS制作一个聚光灯效果(附代码)• 一文了解CSS3中的新特性 ::target-text 选择器
    1/1

    PHP中文网