使用CSS3实现loading效果

news/2024/10/22 11:40:32/

效果展示

在这里插入图片描述

具体实现

示例完全是使用 html+CSS3 实现,主要是用到了 CSS3 的animateanimate-delay属性。

html 代码如下:

<div class="container"><span style="--i:0"></span><span style="--i:1"></span><span style="--i:2"></span><span style="--i:3"></span><span style="--i:4"></span><span style="--i:5"></span><span style="--i:6"></span><span style="--i:7"></span><span style="--i:8"></span><span style="--i:9"></span><span style="--i:10"></span><span style="--i:11"></span><span style="--i:12"></span><span style="--i:13"></span><span style="--i:14"></span><span style="--i:15"></span><span style="--i:16"></span><span style="--i:17"></span><span style="--i:18"></span><span style="--i:19"></span><span style="--i:20"></span><span style="--i:21"></span><span style="--i:22"></span><span style="--i:23"></span><span style="--i:24"></span><span style="--i:25"></span><span style="--i:26"></span><span style="--i:27"></span><span style="--i:28"></span><span style="--i:29"></span><span style="--i:30"></span><span style="--i:31"></span><span style="--i:32"></span><span style="--i:33"></span><span style="--i:34"></span><span style="--i:35"></span><span style="--i:36"></span><span style="--i:37"></span><span style="--i:38"></span><span style="--i:39"></span><span style="--i:40"></span><span style="--i:41"></span><span style="--i:42"></span><span style="--i:43"></span><span style="--i:44"></span><span style="--i:45"></span><span style="--i:46"></span><span style="--i:47"></span><span style="--i:48"></span><span style="--i:49"></span>
</div>

代码有点冗余,写了 50 个span元素,当然可以使用 javascript 去循环生成,再插入到 DOM中。这段代码就是给每个span元素绑定了--i值,每个span元素就是效果中的变色部分,之所以用--i时方便在设置span元素样式时使用var(--i)变量来给span动态设置样式。

CSS3 代码如下:

<style>span {display: inline-flex;width: 32px;height: 6px;background-color: #2c4766;border-radius: 8px;position: absolute;left: 0;transform-origin: 128px;transform: rotate(calc(var(--i) * (360deg / 50)));animation: animateBlink 1s linear infinite; /*执行一秒,匀速执行,循环*/animation-delay: calc((var(--i) * (1s / 50))); /*设置动画的延迟执行时间,这样就可以看到渐变的效果*/}@keyframes animateBlink {0% {background-color: #0ef;}25% {background-color: #2c4766;}}
</style>

这段代码总共做了两件事,设置span的旋转角度和定义animateBlink动画并绑定。

旋转 span

通过--i变量设置每个span元素的旋转角度,均匀分布在一个环上。

设置中心点

transform-origin: [<x-position>] [<y-position>] [<z-position>];

效果如下

在这里插入图片描述

动画

这段代码就是定义了一个animateBlink动画, 循环匀速执行动画,动画完全执行一轮时间持续 1s


http://www.ppmy.cn/news/1541048.html

相关文章

HarmonyOS NEXT 应用开发实战(六、组件导航Navigation使用详解)

在鸿蒙应用开发中&#xff0c;Navigation 组件是实现界面间导航的重要工具。本文将介绍如何使用 Navigation 组件实现页面跳转及参数传递&#xff0c;确保你能轻松构建具有良好用户体验的应用。 当前HarmonyOS支持两套路由机制&#xff08;Navigation和Router&#xff09;&…

SpringCloud-持久层框架MyBatis Plus的使用与原理详解

在现代微服务架构中&#xff0c;SpringCloud 是一个非常流行的解决方案。而在数据库操作层面&#xff0c;MyBatis Plus 作为 MyBatis 的增强工具&#xff0c;能够简化开发&#xff0c;提升效率&#xff0c;特别是在开发企业级应用和分布式系统时尤为有用。本文将详细介绍 MyBat…

C# OnnxRuntime yolo11 pest detection

目录 介绍 效果 模型信息 项目 代码 下载 介绍 官网地址&#xff1a;GitHub - ultralytics/ultralytics: Ultralytics YOLO11 &#x1f680; YoloV11&#xff08;You Only Look Once V11&#xff09;是一种计算机视觉算法&#xff0c;用于目标检测。它是由 Joseph Redm…

大模型之三十二-语音合成TTS(coqui) 之二 fine-tune

在 大模型之三十-语音合成TTS(coqui)[shichaog CSDN]中提到了xttsv2的fine-tune。 数据情况&#xff1a; 我是从bilibili up主小Lin说提取了一些视频&#xff0c;然后进行了重新的fine-tune。 训练结果 如下图所示&#xff0c;上面波形幅度较大的是xttsv2原始模型的结果&am…

Synchronized是非公平锁吗?那么如何体现?锁能降级吗?

1. synchronized 是非公平锁吗&#xff1f; 是的&#xff0c;synchronized 是非公平锁。 什么是非公平锁&#xff1f; 非公平锁意味着线程获取锁的顺序并不一定按照先后到达的顺序&#xff0c;也就是说&#xff0c;后来的线程有可能插队&#xff0c;优先获取锁。这种机制可以…

python的Django框架入门

Django是一个开源的Python Web开发框架&#xff0c;遵循MTV&#xff08;Model-Template-View&#xff0c;模型-模板-视图&#xff09;架构&#xff0c;是一个全功能的Web框架&#xff0c;Django的模块化设计允许开发者通过添加自定义插件、使用第三方库等方式来增强其功能。 一…

后端接收参数的几种常用注解

目录 一、RequestParam 二、RequestBody 三、PathVariable 四、RequestHeader 五、RequestAttribute 六、RequestPart 七、Valid 一、RequestParam 1.作用 用于将请求中的 查询参数 或 表单参数 绑定到方法的参数上。支持 GET 和 POST 请求。 2.使用方法 GetMappin…

第十四届单片机嵌入式蓝桥杯

一、CubeMx配置 &#xff08;1&#xff09;LED配置 &#xff08;1&#xff09;LED灯里面用到了SN74HC573ADWR锁存器&#xff0c;这个锁存器有一个LE引脚,这个是我们芯片的锁存引脚&#xff08;使能引脚&#xff09;&#xff0c;由PD2这个端口来控制的 &#xff08;2&#xff…