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


相关文章
|
1月前
|
机器学习/深度学习 前端开发 JavaScript
|
2月前
|
前端开发
CSS:Loading效果
CSS:Loading效果
27 0
|
3月前
|
前端开发
2s 利用 HTML+css动画实现企业官网效果
2s 利用 HTML+css动画实现企业官网效果
|
25天前
|
前端开发 搜索推荐 UED
实现 CSS 动画效果的兼容性
【10月更文挑战第16天】实现 CSS 动画效果的兼容性需要对不同浏览器的特性有深入的了解,并采取适当的策略和方法。通过不断的实践和优化,你可以在各种浏览器上创造出流畅、美观且兼容的动画效果,为用户带来更好的体验。在实际开发中,要密切关注浏览器的发展动态,及时掌握最新的兼容性技巧和解决方案,以确保你的动画设计能够在广泛的用户群体中得到良好的呈现。
102 58
|
4天前
|
Web App开发 前端开发 JavaScript
如何在不牺牲动画效果的前提下,优化 CSS3 动画的性能?
如何在不牺牲动画效果的前提下,优化 CSS3 动画的性能?
14 1
|
30天前
|
前端开发 JavaScript API
探索 CSS Houdini:轻松构建酷炫的 3D 卡片翻转动画
本文通过构建一个 3D 翻卡动画深入探讨了 CSS Houdini 的强大功能,展示了如何通过 Worklets、自定义属性、Paint API 等扩展 CSS 的能力,实现高度灵活的动画效果。文章首先介绍了 Houdini 的核心概念与 API,并通过构建一个动态星空背景、圆形进度条以及交互式 3D 翻卡动画的实际示例,展示了如何利用 CSS Houdini 赋予网页设计更多创造力。最后,还演示了如何将这种 3D 翻卡效果集成到公司网站中,提升用户体验。CSS Houdini 的创新能力为网页设计带来了前所未有的灵活性,推动了前端开发迈向新的高度。
26 0
探索 CSS Houdini:轻松构建酷炫的 3D 卡片翻转动画
|
1月前
|
前端开发
【CSS】纯css3螺旋状loading加载特效
【CSS】纯css3螺旋状loading加载特效
29 4
|
2月前
|
JavaScript 前端开发
JS配合CSS3实现动画和拖动小星星小Demo
本文通过代码示例展示了如何使用JavaScript和CSS3实现动画效果和拖动小星星的交互效果,包括文字掉落动画和鼠标拖动产生小星星动画的实现方法。
45 0
JS配合CSS3实现动画和拖动小星星小Demo
|
1月前
|
前端开发
CSS 动画介绍及语法
CSS 动画介绍及语法
27 0
|
3月前
|
前端开发 UED 开发者
有趣的CSS - 文字加载动画效果
这个文本加载动画简单而有趣,可以在网站标题、广告标语或者关键信息的展示上吸引用户的注意力。开发者可以根据需要调整动画的持续时间、步骤数,或者光标颜色等,来适应特定的设计需求。使用这种动态元素,增强网站的互动性和用户体验,同时也为网站增添了一抹活泼的风格。
76 5

热门文章

最新文章