有趣的css - 移形换位加载动画

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是一个移形换位动态加载小动效,适用于 app 列表加载,页面加载或者图片懒加载等场景。

最新文章通过公众号「设计师工作日常」发布。


目录

  • 整体效果
  • 核心代码
    • html 代码
    • css 部分代码
  • 完整代码如下
    • html 页面
    • css 样式
    • 页面渲染效果

整体效果

💎知识点:
1️⃣ transform 形变 rotate(n) 旋转属性
2️⃣ :before 以及 :after 伪元素
3️⃣ animation 动画以及关键帧参数
4️⃣ position 定位

🔑思路:
创建三个矩形元素,通过 animation 动画,让三个矩形元素循环移动到不同的位置上。

适用于 app 列表加载,页面加载或者图片懒加载等场景。


核心代码部分,简要说明了写法思路;完整代码在最后,可直接复制到本地运行。

核心代码

html 代码

<div class="loading65"><div class="rectangle65"></div>
</div>

加载动画整体 html 标签布局。

css 部分代码

.loading65{position: relative;transform: rotate(45deg);
}
.loading65:before,.rectangle65::before,.rectangle65::after{content: '';width: 14px;height: 14px;border: 2px solid #333333;border-radius: 4px;box-sizing: border-box;position: absolute;
}
.loading65:before{top: 0;left: 0;animation: eff651 4s ease-in-out infinite;animation-delay: 0.45s;
}
.rectangle65::before{top: 12px;left: 0px;animation: eff652 4s ease-in-out infinite;animation-delay: 0.65s;
}
.rectangle65::after{top: 0px;left: 12px;animation: eff653 4s ease-in-out infinite;animation-delay: 0.25s;
}
@keyframes eff651{0%,10%{top: 0;left: 0;}15%,35%{top: 0;left: 12px;}40%,60%{top: 12px;left: 12px;}65%,85%{top: 12px;left: 0;}90%,100%{top: 0;left: 0;}
}
@keyframes eff652{0%,10%{top: 12px;left: 0;}15%,35%{top: 0;left: 0;}40%,60%{top: 0;left: 12px;}65%,85%{top: 12px;left: 12px;}90%,100%{top: 12px;left: 0;}
}
@keyframes eff653{0%,10%{top: 0;left: 12px;}15%,35%{top: 12px;left: 12px;}40%,60%{top: 12px;left: 0;}65%,85%{top: 0;left: 0;}90%,100%{top: 0;left: 12px;}
}

1、分别基于 .loading65.rectangle65 创建伪元素 .loading65:before , .rectangle65::before , .rectangle65::after ,并且分别定义这 3 个伪元素的通用尺寸大小,形成 3 个同样大小的矩形边框。

2、然后通过 position 定位属性,分别调整这 3 个矩形边框的 topleft 值,让这 3 个矩形边框元素形成一个小 L 形状。

3、利用 transform 形变 rotate(n) 旋转属性,给整个加载主体 .loading65 旋转 45°,整体形状成向上的简约箭头,更具设计感。

4、分别给这 3 个矩形边框元素,添加 animation 动画,增加关键帧参数,让这 3 个矩形边框元素不停的移形换位;最后分别增加不同的 animation-delay 属性值,让这 3 个矩形边框元素分别延迟播放动画,最终形成视觉上的移形换位且有停顿感。

完整代码如下

html 页面

<!DOCTYPE html>
<html lang="zh"><head><meta charset="utf-8"><link rel="stylesheet" href="style.css"><title>移形换位加载动画</title></head><body><div class="app"><div class="loading65"><div class="rectangle65"></div></div></div></body>
</html>

css 样式

/** style.css **/
.app{width: 100%;height: 100vh;background-color: #ffffff;position: relative;display: flex;justify-content: center;align-items: center;
}
.loading65{position: relative;transform: rotate(45deg);
}
.loading65:before,.rectangle65::before,.rectangle65::after{content: '';width: 14px;height: 14px;border: 2px solid #333333;border-radius: 4px;box-sizing: border-box;position: absolute;
}
.loading65:before{top: 0;left: 0;animation: eff651 4s ease-in-out infinite;animation-delay: 0.45s;
}
.rectangle65::before{top: 12px;left: 0px;animation: eff652 4s ease-in-out infinite;animation-delay: 0.65s;
}
.rectangle65::after{top: 0px;left: 12px;animation: eff653 4s ease-in-out infinite;animation-delay: 0.25s;
}
@keyframes eff651{0%,10%{top: 0;left: 0;}15%,35%{top: 0;left: 12px;}40%,60%{top: 12px;left: 12px;}65%,85%{top: 12px;left: 0;}90%,100%{top: 0;left: 0;}
}
@keyframes eff652{0%,10%{top: 12px;left: 0;}15%,35%{top: 0;left: 0;}40%,60%{top: 0;left: 12px;}65%,85%{top: 12px;left: 12px;}90%,100%{top: 12px;left: 0;}
}
@keyframes eff653{0%,10%{top: 0;left: 12px;}15%,35%{top: 12px;left: 12px;}40%,60%{top: 12px;left: 0;}65%,85%{top: 0;left: 0;}90%,100%{top: 0;left: 12px;}
}

页面渲染效果

以上就是所有代码,以及简单的思路,希望对你有一些帮助或者启发。


[1] 原文阅读


CSS 是一种很酷很有趣的计算机语言,在这里跟大家分享一些 CSS 实例 Demo,为学习者获取灵感和思路提供一点帮助,希望你们喜欢。

我是 Just,这里是「设计师工作日常」,求点赞求关注!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/330891.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu22.04本地部署qwen模型、jupyterlab开发环境、LoRA微调全流程

前言 这段时间在自己的Win11系统上部署了chatGLM以及Qwen模型&#xff0c;进行对话、推理以及工具调用都没有问题&#xff0c;但是在尝试进行微调的时候发现好像并不能成功&#xff0c;因此花费了很大的力气&#xff0c;又分别在ubuntu桌面版、windows子系统WSL2 Ubuntu上部署…

数据可视化第9天(利用wordcloud和jieba分析蝙蝠侠评论的关键字)

数据可以在这里下载 https://github.com/harkbox/DataAnalyseStudy WordCloud wordcloud可以很方便的生成词云图&#xff0c;方便的提供可视化可以直接使用pip install wordcloud进行安装如果使用的是Anaconda,可以使用conda install进行安装 下面看一个简单的例子 txt &qu…

JVM学习-堆空间(三)

JVM在进行GC时&#xff0c;并非每次都对新生代、老年代、方法区(元空间)三个区域一起回收&#xff0c;大部分时间回收的都是新生代 针对Hotspot VM的实现&#xff0c;它里面的GC按照回收区域分两大类型&#xff1a;一种是部分收集(Partial GC)&#xff0c;一种是整堆收集(Full …

amtlib.dll打不开怎么办?一键修复丢失amtlib.dll方法

电脑丢失amtlib.dll文件是什么情况&#xff1f;出现amtlib.dll打不开怎么办&#xff1f;这样的情况有什么解决方法呢&#xff1f;今天就和大家聊聊amtlib.dll文件同时教大家一键修复丢失amtlib.dll方法&#xff1f;一起来看看amtlib.dll文件丢失会有哪些方法修复&#xff1f; a…

Docker配置国内镜像源

添加Docker国内镜像源 在/etc/docker/daemon.json文件中添加以下内容&#xff1a; {"registry-mirrors": ["http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com"] }重启docker s…

【Python】—— lambda表达式

目录 &#xff08;一&#xff09;应用场景 &#xff08;二&#xff09;lambda 语法 &#xff08;三&#xff09;示例分析 &#xff08;四&#xff09;lambda参数形式 4.1 无参数 4.2 一个参数 4.3 默认参数 4.4 可变参数 &#xff1a;*args 4.5 可变参数 &#xff1a;…

第四十一天 | 62.不同路径 63.不同路径|| 343.整数拆分 96.不同的二叉搜索树

题目&#xff1a;62.不同路径 1.二维dp数组dp[i][j]含义&#xff1a;到达&#xff08;i&#xff0c;j&#xff09;位置有dp[i][j]种方法。 2.动态转移方程&#xff1a;dp[i][j] dp[i - 1][j] dp[i][j - 1] 3.初始化&#xff1a;dp[0][j] 1, dp[i][0] 1 &#xff08;第一…

Spring Cloud 之 Gateway

本篇主要介绍有关Gateway网关的相关内容。 目录 一、什么是网关 二、Gateway的使用 Gateway服务的搭建 Route Predicate Factories Gateway Filter Factories Filter GlobalFilter Filter的执行顺序 一、什么是网关 经常面试的人肯定知道&#xff0c;在去公司面试时…

CAN笔记第二篇,车载测试继续学起来!

在CAN协议中&#xff0c;“帧”是一个包含完整信息的独立单元&#xff0c;它具有特定的格式和结构&#xff0c;以确保数据在CAN总线上的可靠传输。这里的“帧”字可以理解为&#xff1a; 完整性&#xff1a;一个帧包含了所有必要的信息&#xff0c;从起始到结束&#xff0c;都遵…

【LeetCode】【1】两数之和(1141字)

文章目录 [toc]题目描述样例输入输出与解释样例1样例2样例3 提示进阶Python实现哈希表 个人主页&#xff1a;丷从心 系列专栏&#xff1a;LeetCode 刷题指南&#xff1a;LeetCode刷题指南 题目描述 给定一个整数数组nums和一个整数目标值target&#xff0c;请在该数组中找出…

视觉检测实战项目——九点标定

本文介绍九点标定方法 已知 9 个点的图像坐标和对应的机械坐标,直接计算转换矩阵,核心原理即最小二乘拟合 {𝑥′=𝑎𝑥+𝑏𝑦+𝑐𝑦′=𝑎′𝑥+𝑏′𝑦+𝑐′ [𝑥1𝑦11𝑥2𝑦21⋮⋮⋮𝑥9𝑦91][𝑎𝑎′𝑏𝑏′𝑐𝑐′]=[𝑥1′𝑦…

AI爆文写作:根据别人的爆款标题,如何通过名词替换改成自己的爆款标题?

在日常刷到爆文的时候&#xff0c;就可以培养自己的网感&#xff0c;为啥这篇文章会爆&#xff1f; 这篇爆文的标题有啥诀窍呢&#xff1f; 比如下面这一篇&#xff1a;《极简生活&#xff1a;变富就是每天循环5个动作》 我们可以发现&#xff0c;每天循环5个动作 这几个词语…

C#基础一

使用Visual Studio 2022&#xff08;VS2022&#xff09;编写C#控制台程序 1. 安装Visual Studio 2022 确保已安装Visual Studio 2022。如果未安装&#xff0c;请从Visual Studio官网下载并安装。 另一篇文章中已经有详细描述&#xff0c;这里就不在细说了。 VisualStudio2022…

【JavaEE 初阶(十)】JVM

❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;关注我带你了解更多进阶知识 目录 1.前言2.JVM内存区域划分3.类加载3.1双亲委派模型 4.垃圾回收&#xff08;GC&#xff0…

1098: 堆的判断

解法&#xff1a; 堆是完全二叉树 用数组来存储 然后用定义判定 #include<iostream> #include<vector> using namespace std; int main() {int n;cin >> n;vector<int> vec(n);for (int i 0; i < n; i) cin >> vec[i];for (int i 0; i &…

LabVIEW超高温高压流变仪测试系统

LabVIEW超高温高压流变仪测试系统 超高温高压流变仪广泛应用于石油、天然气、化工等行业&#xff0c;用于测量材料在极端条件下的流变特性。随着计算机技术、测试技术和电子仪器技术的快速发展&#xff0c;传统的流变仪测试方式已无法满足现代工业的需求。因此&#xff0c;开发…

【全开源】沃德商协会管理系统源码(FastAdmin+ThinkPHP+Uniapp)

一款基于FastAdminThinkPHPUniapp开发的商协会系统&#xff0c;新一代数字化商协会运营管理系统&#xff0c;以“智慧化会员体系、智敏化内容运营、智能化活动构建”三大板块为基点&#xff0c;实施功能全场景覆盖&#xff0c;一站式解决商协会需求壁垒&#xff0c;有效快速建立…

就业班 第三阶段(CICD) 2401--5.15 day2 自动化构建打包、部署(Jenkins + maven+ gitlab+tomcat)

一、平滑发布与灰度发布 **什么叫平滑&#xff1a;**在发布的过程中不影响用户的使用&#xff0c;系统不会因发布而暂停对外服务&#xff0c;不会造成用户短暂性无法访问&#xff1b; **什么叫灰度&#xff1a;**发布后让部分用户使用新版本&#xff0c;其它用户使用旧版本&am…

vector的底层实现与模拟

嗨喽大家好&#xff0c;时隔许久阿鑫又给大家带来了新的博客&#xff0c;关于vector的模拟实现&#xff0c;下面让我们开始今天的学习吧&#xff01; vector的底层实现与模拟 1.关于vector中的插入和删除 2. vector中的拷贝构造和赋值 3.vector的构造函数 4.关于vector中浅…

微信小程序报错:notifyBLECharacteristicValueChange:fail:nodescriptor的解决办法

文章目录 一、发现问题二、分析问题二、解决问题 一、发现问题 微信小程序报错&#xff1a;notifyBLECharacteristicValueChange:fail:nodescriptor 二、分析问题 这个提示有点问题&#xff0c;应该是该Characteristic的Descriptor有问题&#xff0c;而不能说nodescriptor。 …