炫酷CSS加载动画

HTML结构
首先是HTML代码,定义了一个类名container的<div>容器:

        1.在这个容器里面包含了一些加载器.loader,每个加载器都具有不同的旋转角度自定义属性--r(1~4),而每个加载器里面有20个<span>元素,并且也都具有不同的旋转角度自定义属性--r(1~20)。
        2.后面会通过CSS设置不同的旋转角度属性--r和旋转角度子属性--i,创建多个加载器,并且每个加载器都具有不同的动画表现。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>CSS Animation</title>

  <link rel="stylesheet" href="./index.css">
</head>

<body>
  <div class="container">
    <div class="loader" style="--r: 1">
      <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>
    </div>

    <div class="loader" style="--r: 2">
      <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>
    </div>

    <div class="loader" style="--r: 3">
      <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>
    </div>

    <div class="loader" style="--r: 4">
      <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>
    </div>
  </div>
</body>

</html>

CSS样式
接下来看CSS代码,重置全局样式后,给.container元素定义了水平垂直居中布局,然后使用filter样式属性来应用色相旋转(hue-rotate)滤镜,将背景色调整为90度的色相。因此,子元素的任何颜色同样会天剑滤镜。

        1.首先,每个.loader元素通过transform: rotate()属性根据--r值设置旋转角度 (45deg * 1/2/3/4 = 45/90/135/180deg)。
        2.其次,每个span元素使用定位设置初始位置在左侧,以及通过transform: rotate()属性根据--i值设置旋转角度 (18deg * 1~20 = 18 ~ 360deg)。
        3.然后,每个span::before定义固定的宽度和高度及背景颜色。使用box-shadow属性定义了一个由多个投影组成的阴影效果,产生一种立体感。

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.container {
  min-height: 100vh;
  background-color: #042104;
  filter: hue-rotate(90deg);

  display: flex;
  justify-content: center;
  align-items: center;
}

.loader {
  position: relative;
  transform: rotate(calc(var(--r) * 45deg));
}

.loader span {
  position: absolute;
  top: 0;
  left: -200px;

  width: 200px;
  height: 2px;
  transform-origin: right;
  transform: rotate(calc(var(--i) * 18deg));
}

.loader span::before {
  content: "";
  display: block;

  width: 15px;
  height: 15px;
  background-color: #00ff0a;
  border-radius: 15px;
  box-shadow: 0 0 10px #00ff0a, 
              0 0 20px #00ff0a, 
              0 0 40px #00ff0a, 
              0 0 60px #00ff0a, 
              0 0 80px #00ff0a, 0 0 100px #00ff0a;
  animation: animate 5s linear infinite;
  animation-delay: calc(-0.5s * var(--i));
}
@keyframes animate {
  0% {
    transform: translateX(200px) scale(1);
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  80% {
    opacity: 1;
  }

  100% {
    transform: translateX(0) scale(0);
    opacity: 1;
  }
}



@media screen and (max-width: 576px) {
  .container .loader {
    scale: .6;
  }  
}

此外,通过animation属性和@keyframes规则,定义了名为animate的关键帧动画。该动画在5秒内线性地进行,无限循环播放。动画的每个关键帧设置了不同的变换效果,包括 平移、缩放和透明度 变化。根据时间的进展,加载器的形状和位置会发生变化,从而创造出动态的效果。

效果展示:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue编辑页面提示 this file does not belong to the project

背景 打开vue项目工程 文件夹被锁定&#xff08;有黄色背景&#xff09;&#xff0c;编辑页面时&#xff0c;报错。 报错提示&#xff1a; vue编辑页面提示 this file does not belong to the project 原因 一不下心打开了错误的文件包 解决方案 1、删除.idea文件夹 2、…

光学仿真 | 推动高精度且微型化摄像头以满足市场需求

光学设计人员面临着一项持续挑战&#xff0c;即满足消费者对摄像头等体积更小、更轻量化设备的需求&#xff0c;同时要不断提高图像质量。一般来说&#xff0c;能否获得最佳质量取决于镜头数量&#xff1a;可装入设备的镜头越多&#xff0c;分辨率和色彩精度就越高。 就智能手机…

隐语开源|周爱辉:隐语 TEE 技术解读与跨域管控实践

“隐语”是开源的可信隐私计算框架&#xff0c;内置 MPC、TEE、同态等多种密态计算虚拟设备供灵活选择&#xff0c;提供丰富的联邦学习算法和差分隐私机制 开源项目 github.com/secretflow gitee.com/secretflow 11月25日&#xff0c;「隐语开源社区 Meetup西安站」顺利举办&…

Pinia无废话,快速上手

Pinia无废话&#xff0c;快速上手 Vue3 状态管理 - Pinia 1. 什么是Pinia Pinia 是 Vue 的专属的最新状态管理库 &#xff0c;是 Vuex 状态管理工具的替代品 2. 手动添加Pinia到Vue项目 后面在实际开发项目的时候&#xff0c;Pinia可以在项目创建时自动添加&#xff0c;现…

项目播报 | 河北信投数字科技签约璞华科技,以数字化方式全面提升采购效率

近日&#xff0c;璞华科技签约河北信投数字科技有限责任公司&#xff08;以下简称“河北信投数字科技”&#xff09;。璞华科技基于璞华采云链产品帮助客户打造采购数字化全景解决方案&#xff0c;实现智慧采购数字化转型升级。 本次强强联合&#xff0c;双方就采购数字化平台建…

【产品设计】软件系统三基座之三:用户管理

软件系统中的用户管理该如何做&#xff1f;系统设计过程中要考虑哪几方面&#xff1f;用户体验设计从哪些点来考察&#xff1f; 软件系统三基座包含&#xff1a;权限管理、组织架构、用户管理。基于权限控制、组织搭建&#xff0c;用户可以批量入场。 一、用户管理 在系统构建…

深入理解RBAC权限系统

最近&#xff0c;一位朋友在面试中被问及如何设计一个权限系统。我们注意到目前许多后台管理系统&#xff08;包括一些热门的如若依快速开发平台&#xff09;都采用了RBAC访问控制策略。该策略通过将权限授予角色&#xff0c;然后将角色分配给用户&#xff0c;从而实现对系统资…

【Spark精讲】Spark任务运行流程

Spark任务执行流程 部署模式是根据Drvier和Executor的运行位置的不同划分的。client模式提交任务与Driver进程在同一个节点上&#xff0c;而cluster模式提交任务与Driver进程不在同一个节点。 Client模式 Clinet模式是在spark-submit提交任务的节点上运行Driver进程。 执行流…

day01、什么是数据库系统?

数据库系统介绍 1.实例化与抽象化数据库系统2.从用户角度看数据库管理系统的功能2.1 数据库定义功能2.2 数据库操纵2.3 数据库控制2.4 数据库维护功能2.5 数据库语言与高级语言 3.从系统&#xff1a;数据库管理系统应具有什么功能 来源于战德臣的B站网课 1.实例化与抽象化数据库…

Git篇---第五篇

系列文章目录 文章目录 系列文章目录前言一、提交对象包含什么?二、如何在Git中创建存储库?三、怎样将 N 次提交压缩成一次提交?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分…

D30|继续贪心

别太贪心了&#xff0c;做出一道贪心就应该知足呜呜呜 860.柠檬水找零 初始思路&&题解复盘: 确实不难&#xff0c;按照这个思路书写即可。 情况一&#xff1a;账单是5&#xff0c;直接收下。 情况二&#xff1a;账单是10&#xff0c;消耗一个5&#xff0c;增加一个10…

『 Linux 』进程地址空间概念

文章目录 &#x1fad9; 前言&#x1fad9; 进程地址空间是什么&#x1fad9; 写时拷贝&#x1fad9; 可执行程序中的虚拟地址&#x1fad9; 物理地址分布方式 &#x1fad9; 前言 在c/C中存在一种内存的概念; 一般来说一个内存的空间分布包括栈区,堆区,代码段等等; 且内存是…

长三角区域部分行业企业是如何实践招标采购供应链系统建设的?

长三角城市群是我国经济发展最活跃、开放程度最高、创新能力最强的区域之一&#xff0c;在国家现代化建设大局和全方位开放格局中具有举足轻重的战略地位。今年前三季度&#xff0c;长三角实现地区生产总值约22万亿元&#xff0c;占全国经济总量的24&#xff05;。 采购作为供…

从零构建属于自己的GPT系列6:模型本地化部署2(文本生成函数解读、模型本地化部署、文本生成文本网页展示、代码逐行解读)

&#x1f6a9;&#x1f6a9;&#x1f6a9;Hugging Face 实战系列 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在PyCharm中进行 本篇文章配套的代码资源已经上传 从零构建属于自己的GPT系列1&#xff1a;数据预处理 从零构建属于自己的GPT系列2&#xff1a;模型训…

极兔速递查询,极兔速递单号查询,筛选出指定派件员的单号

批量查询极兔速递单号的物流信息&#xff0c;并将指定派件员的单号筛选出来。 所需工具&#xff1a; 一个【快递批量查询高手】软件 极兔速递单号若干 操作步骤&#xff1a; 步骤1&#xff1a;运行【快递批量查询高手】软件&#xff0c;第一次使用的朋友记得先注册&#xff…

【基础知识】大数据概述

关键词—分布式 化整为零&#xff0c;再化零为整 大数据的定义 传统数据库处理起来困难的数据集。 发展历程 中国开源生态图谱2023 参考内容 中国开源生态图谱 2023.pdf 技术组件说明 数据集成 sqoop、dataX、flume 数据存储 hdfs、kafka 数据处理 mapreduce、hive…

使用shell脚本将一台虚拟机上面数据分发到其他虚拟机上面xsync

目录 1&#xff0c;功能2&#xff0c;注意点3&#xff0c;shell脚本介绍4&#xff0c;bash内容 1&#xff0c;功能 使用shell脚本将一台虚拟机上面数据分发到其他虚拟机上面。 2&#xff0c;注意点 需要修改的地方&#xff1a;hadoop250 hadoop251 hadoop252 hadoop253 hado…

“2024杭州国际安防产品展览会”加快推进浙江平安城市体系现代化

2024杭州国际安防产品展览会&#xff0c;将于2024年3月份在杭州国际博览中心隆重召开。作为全球安防产业的重要盛会&#xff0c;该展览会以其“专业化、市场化”为特点&#xff0c;聚焦每年核心主题&#xff0c;以专业化为核心&#xff0c;打造品牌项目&#xff0c;使之成为备受…

RuoYi-Cloud诺依微服务项目

1、架构图 从图中解析出RuoYi-Cloud 使用微服务技术栈 网关&#xff1a;Gateway远程调用&#xff1a;Ribbon/Feign注册中心&#xff1a;Nacos Discovery熔断降级&#xff1a;Sentinel配置中心&#xff1a;Nacos Config链路追踪&#xff1a;Sleuth ZipKin/SkyWalking &#x…

Stable Diffusion 系列教程 - 3 模型下载和LORA模型的小白入门

首先&#xff0c;一个比较广泛的模型下载地址为&#xff1a;Civitai Models | Discover Free Stable Diffusion Models 黄框是一些过滤器&#xff0c;比如checkpoints可以理解为比如把1.5版本的SD模型拷贝一份后交叉识别新的画风或场景后得到的模型&#xff0c;可以单独拿出来使…