CSS吃吃吃loading动画

简介: 我们在浏览网页或者使用APP时,经常会看到这样一个动画:加载动画,不得不说,我去网上百度搜索了一下,就看到好多简洁却不乏味的加载特效,你会发现一个不错的加载特效可以让人发呆,一直盯着看,啊哈,反证我就看了好一会,然后就想到了之前看到的一个一直吃吃吃的加载特效,我去网上找,也没有找到我想要的,额,既然这样,那就自己动手用CSS写一个吧!!!说干就干先来看一下我最终实现的效果:也可以网址访问到:吃吃吃loading

b14c9a0402c748e69861338ffc1e57e4.gif


1.分析元素



因为我是新手,没什么发言权,就分享一下我coding的过程,先分析元素,两个半圆通过转动即可实现类似张嘴的动画,然后写豆豆就慢慢调优就好,最后写个小眼睛注入灵魂。其他的元素自己发挥,我这里就是再复习一下昨天学的,这种小型的我们可以快速的在脑袋中思考,然后编码会发现很顺利,然后如果说对于稍微大点的程序的话,最好有设计稿,有脑图等等,帮助梳理的辅助。好了,那就coding吧!


2.html



就是写元素盒子,不必多说,哈哈,你可以说我命名不规范,可我会的都用英文来命名了,我也是很严谨的,哈哈哈🤣


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>吃吃吃loading</title>
</head>
<body>
    <div class="div">
      /*⚪*/
        <div class="yuan"></div>
        /*豆豆*/
        <div class="doudou"></div>
        /*眼睛,哈哈,我可是用的英文*/
        <div class="eye"></div>
        /*写的字*/
        <div class="wenzi">快到嘴里来</div>
        /*边框*/
        <div class="box"></div>
    </div>
</body>
</html>


3.CSS



有关CSS的注释我基本都写了,看代码就完事了


*{
            margin: 0;
            padding: 0;
        }
        body{
            background-color: rgb(111, 111, 111);
        }
        .div{
            height: 200px;
            width: 200px;
            position: absolute;
            left: 50%;
            top: 50%;
            /* 2d */
            transform: translate(-50%,-50%);
        }
        /* 画两个⚪ */
        .yuan{
            width: 100%;
            height: 100%;
            position: absolute;
        }
        /* 伪元素选择器,分别使用after,before的伪类画出两个半圆,然后再寻转角度 */
        .yuan::after{
            /* 设置相对的圆角边框 */
            bottom: 0;
            border-radius: 0 0 200px 200px;
            content: "";
            width: 100%;
            height: 50%;
            position: absolute;
            background-color: rgb(240, 190, 11);
            /* 设置旋转元素的基点位置 */
            transform-origin: 50% 0%;
            /* 顺时针旋转45° */
            transform: rotate(45deg);
            /* 使用关键帧,让它一直吃吃吃吃 */
            animation: eatMove 1s linear infinite;
        }
        .yuan::before{
            /* 设置相对的圆角边框 */
            top: 0;
            border-radius: 200px 200px 0 0;
            content: "";
            width: 100%;
            height: 50%;
            position: absolute;
            background-color: rgb(240, 190, 11);
            /* 设置旋转元素的基点位置 */
            transform-origin: 50% 100%;
            /* 逆时针旋转45° */
            transform: rotate(-45deg);
            animation: eatMove 1s linear infinite;
        }
        .doudou{
            width: 200px;
            height: 50px;
            position: absolute;
            right: -50%;
            top: 50%;
            /* 只设置Y轴,使得对齐 */
            transform: translateY(-50%);
            /* 浮动元素的 z-index属性默认为0,谁大谁显示在上面,这是为了产生吃掉的效果 */
            z-index: -1;
        }
        .doudou::before,
        .doudou::after{
            content: "";
            width: 30px;
            height: 30px;
            border-radius: 50%;
            position: absolute;
            top: 50%;
            background-color: rgb(255, 170, 0);
            transform: translateY(-50%);
            right: -30px;
        }
        .doudou::before{
            animation: doudouMove 0.8s linear infinite;
        }
        /* 这里的延时使得看上去一次吃了两个,其实是由最后的参数延时一秒造成的 */
        .doudou::after{
            animation: doudouMove 0.8s linear infinite /*1s*/;
        }
        /* 眼睛注入灵魂 */
        .eye{
            width: 30px;
            height: 30px;
            background-color: black;
            border-radius: 50%;
            position: absolute;
            top: 15%;
            left: 50%;
        }
        .wenzi{
            width: 90px;
            height: 30px;
            display: block;
            position: absolute;
            top: 110%;
            left: 25%;
            color: rgba(255, 170, 0);
            font-family: fangsong;
            font-size: 18px;
            line-height: 30px;
            text-align: center;
            box-shadow: 2px 2px 3px 2px rgb(218, 134, 134),inset 2px 2px 3px 2px royalblue;
        }
        .box{
            width: 400px;
            height: 400px;
            border: 1px solid rgb(240, 190, 11);
            border-radius: 10px;
            position: absolute;
            top: -50%;
            left: -50%;
            box-shadow: 2px 2px 3px 2px rgb(218, 134, 134),inset 2px 2px 3px 2px royalblue;
        }
        /* doudou关键帧 */
        @keyframes doudouMove{
            100%{
                right: 100%;
            }
        }
        /* chi关键帧 */
        @keyframes eatMove{
            50%{
                /* 复制粘贴,把旋转的再转回来就OK */
                transform: rotate(0deg);
            }
        }


相关文章
|
13天前
|
前端开发
css 实现一笔画动画(如签名、手写、手绘等)
css 实现一笔画动画(如签名、手写、手绘等)
16 8
|
12天前
|
前端开发
css动画(仿微信聊天页面)
css动画(仿微信聊天页面)
|
13天前
|
前端开发 JavaScript
纯css动画 —— 展开、收起
纯css动画 —— 展开、收起
15 2
|
13天前
|
前端开发
css特效动画——页面加载中 ...
css特效动画——页面加载中 ...
8 1
|
14天前
|
前端开发 JavaScript 开发者
学习CSS动画的高级技巧
【7月更文挑战第1天】学习CSS动画的高级技巧
12 2
|
14天前
|
前端开发 开发者
通过实践来提升CSS动画技能是非常重要的
【7月更文挑战第1天】通过实践来提升CSS动画技能是非常重要的
13 1
|
14天前
|
前端开发 JavaScript 开发者
如何学习CSS动画?
【7月更文挑战第1天】如何学习CSS动画?
14 1
|
9天前
|
前端开发 JavaScript
CSS【实战】抽屉动画
CSS【实战】抽屉动画
7 0
|
13天前
|
前端开发
css特效动画——转圈的加载动画
css特效动画——转圈的加载动画
9 0
|
13天前
|
前端开发 JavaScript UED
只会用插件可不行,这些前端动画技术同样值得收藏-CSS篇
只会用插件可不行,这些前端动画技术同样值得收藏-CSS篇
16 0