旋转齿轮加载

效果演示

30-旋转齿轮加载.gif

实现了一个旋转齿轮的动画效果。具体来说,页面背景为深灰色,中间有一个齿轮装置,包括四个齿轮。每个齿轮都有内部的齿轮条,整体呈现出旋转的效果。其中,齿轮2是顺时针旋转的,齿轮1、3、4是逆时针旋转的。整体效果是四个齿轮交错旋转,形成一个动态的机械装置效果。

Code

<div class="gearbox"><div class="overlay"></div><div class="gear one"><div class="gear-inner"><div class="bar"></div><div class="bar"></div><div class="bar"></div></div></div><div class="gear two"><div class="gear-inner"><div class="bar"></div><div class="bar"></div><div class="bar"></div></div></div><div class="gear three"><div class="gear-inner"><div class="bar"></div><div class="bar"></div><div class="bar"></div></div></div><div class="gear four large"><div class="gear-inner"><div class="bar"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div></div></div>
</div>
body {height: 100vh; /* 设置body元素的高度为视口高度 */display: flex; /* 使用flex布局 */justify-content: center; /* 水平居中 */align-items: center; /* 垂直居中 */background-color: #212121; /* 设置背景颜色为深灰色 */
}@keyframes clockwise {0% {transform: rotate(0deg); /* 旋转角度从0度开始 */}100% {transform: rotate(360deg); /* 旋转角度到360度结束 */}
}@keyframes counter-clockwise {0% {transform: rotate(0deg); /* 逆时针旋转角度从0度开始 */}100% {transform: rotate(-360deg); /* 逆时针旋转角度到-360度结束 */}
}.gearbox {background: #111; /* 设置齿轮箱的背景颜色为深灰色 */height: 150px; /* 设置齿轮箱的高度 */width: 200px; /* 设置齿轮箱的宽度 */position: relative; /* 相对定位 */border: none; /* 去除边框 */overflow: hidden; /* 内容溢出隐藏 */border-radius: 6px; /* 设置圆角 */box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.1); /* 设置阴影效果 */
}.gearbox .overlay {border-radius: 6px; /* 设置覆盖层的圆角 */content: ""; /* 伪元素内容为空 */position: absolute; /* 绝对定位 */top: 0; /* 顶部对齐 */left: 0; /* 左侧对齐 */width: 100%; /* 宽度100% */height: 100%; /* 高度100% */z-index: 10; /* 设置层级 */box-shadow: inset 0px 0px 20px black; /* 设置内阴影效果 */transition: background 0.2s; /* 背景颜色过渡效果 */
}.gearbox .overlay {background: transparent; /* 设置覆盖层背景为透明 */
}.gear {position: absolute; /* 绝对定位 */height: 60px; /* 设置齿轮的高度 */width: 60px; /* 设置齿轮的宽度 */box-shadow: 0px -1px 0px 0px #888888, 0px 1px 0px 0px black; /* 设置齿轮的阴影效果 */border-radius: 30px; /* 设置齿轮的圆角 */
}.gear.large {height: 120px; /* 设置大齿轮的高度 */width: 120px; /* 设置大齿轮的宽度 */border-radius: 60px; /* 设置大齿轮的圆角 */
}.gear.large:after {height: 96px; /* 设置大齿轮内部圆的高度 */width: 96px; /* 设置大齿轮内部圆的宽度 */border-radius: 48px; /* 设置大齿轮内部圆的圆角 */margin-left: -48px; /* 左偏移 */margin-top: -48px; /* 上偏移 */
}.gear.one {top: 12px; /* 位置调整 */left: 10px; /* 位置调整 */
}.gear.two {top: 61px; /* 位置调整 */left: 60px; /* 位置调整 */
}.gear.three {top: 110px; /* 位置调整 */left: 10px; /* 位置调整 */
}.gear.four {top: 13px; /* 位置调整 */left: 128px; /* 位置调整 */
}.gear:after {content: ""; /* 伪元素内容为空 */position: absolute; /* 绝对定位 */height: 36px; /* 设置齿轮内部圆的高度 */width: 36px; /* 设置齿轮内部圆的宽度 */border-radius: 36px; /* 设置齿轮内部圆的圆角 */background: #111; /* 设置齿轮内部圆的背景颜色 */top: 50%; /* 垂直居中 */left: 50%; /* 水平居中 */margin-left: -18px; /* 左偏移 */margin-top: -18px; /* 上偏移 */z-index: 3; /* 设置层级 */box-shadow: 0px 0px 10px rgba(255, 255, 255, 0.1), inset 0px 0px 10px rgba(0, 0, 0, 0.1), inset 0px 2px 0px 0px #090909, inset 0px -1px 0px 0px #888888; /* 设置阴影效果 */
}.gear-inner {position: relative; /* 相对定位 */height: 100%; /* 设置齿轮内部的高度 */width: 100%; /* 设置齿轮内部的宽度 */background: #555; /* 设置齿轮内部的背景颜色 */border-radius: 30px; /* 设置齿轮内部的圆角 */border: 1px solid rgba(255, 255, 255, 0.1); /* 设置边框 */
}.large .gear-inner {border-radius: 60px; /* 设置大齿轮内部的圆角 */
}.gear.one .gear-inner {animation: counter-clockwise 3s infinite linear; /* 设置逆时针旋转动画 */
}.gear.two .gear-inner {animation: clockwise 3s infinite linear; /* 设置顺时针旋转动画 */
}.gear.three .gear-inner {animation: counter-clockwise 3s infinite linear; /* 设置逆时针旋转动画 */
}.gear.four .gear-inner {animation: counter-clockwise 6s infinite linear; /* 设置逆时针旋转动画 */
}.gear-inner .bar {background: #555; /* 设置齿轮内部条的背景颜色 */height: 16px; /* 设置齿轮内部条的高度 */width: 76px; /* 设置齿轮内部条的宽度 */position: absolute; /* 绝对定位 */left: 50%; /* 水平居中 */margin-left: -38px; /* 左偏移 */top: 50%; /* 垂直居中 */margin-top: -8px; /* 上偏移 */border-radius: 2px; /* 设置齿轮内部条的圆角 */border-left: 1px solid rgba(255, 255, 255, 0.1); /* 设置左边框 */border-right: 1px solid rgba(255, 255, 255, 0.1); /* 设置右边框 */
}.large .gear-inner .bar {margin-left: -68px; /* 左偏移 */width: 136px; /* 设置大齿轮内部条的宽度 */
}.gear-inner .bar:nth-child(2) {transform: rotate(60deg); /* 旋转角度为60度 */
}.gear-inner .bar:nth-child(3) {transform: rotate(120deg); /* 旋转角度为120度 */
}.gear-inner .bar:nth-child(4) {transform: rotate(90deg); /* 旋转角度为90度 */
}.gear-inner .bar:nth-child(5) {transform: rotate(30deg); /* 旋转角度为30度 */
}.gear-inner .bar:nth-child(6) {transform: rotate(150deg); /* 旋转角度为150度 */
}

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

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

相关文章

文件上传失败原因汇总(个人情况总结)

1.后端配置application里有服务限制大小 # Spring spring:servlet:multipart:max-file-size: 500MBmax-request-size: 500MB 2.如果你用了dubbo&#xff0c;要调整生产者和消费者超时时间以及payload大小&#xff0c;最好是dubbo自增策略&#xff0c;防止用了dubbo的服务端口冲…

纳斯达克大屏-投放需要知道的几个条件-大舍传媒

引言 随着移动互联网的快速发展&#xff0c;数字广告媒体广告越来越受到企业的关注。纳斯达克大屏作为全球最大的数字媒体广告投放平台之一&#xff0c;拥有广泛的受众和优质的媒体资源&#xff0c;吸引了众多企业的眼球。要想在纳斯达克大屏上投放广告&#xff0c;企业需要了…

【Oracle】玩转Oracle数据库(五):PL/SQL编程

前言 嗨&#xff0c;各位数据库达人&#xff01;准备好迎接数据库编程的新挑战了吗&#xff1f;今天我们要探索的是Oracle数据库中的神秘魔法——PL/SQL编程&#xff01;&#x1f52e;&#x1f4bb; 在这篇博文【Oracle】玩转Oracle数据库&#xff08;五&#xff09;&#xff1…

SAM轻量化的终点竟然是RepViT + SAM

本文首发&#xff1a;AIWalker&#xff0c;欢迎关注~~ 殊途同归&#xff01;SAM轻量化的终点竟然是RepViT SAM&#xff0c;移动端速度可达38.7fps。 对于 2023 年的计算机视觉领域来说&#xff0c;「分割一切」&#xff08;Segment Anything Model&#xff09;是备受关注的一项…

LeetCode 2476.二叉搜索树最近节点查询:中序遍历 + 二分查找

【LetMeFly】2476.二叉搜索树最近节点查询&#xff1a;中序遍历 二分查找 力扣题目链接&#xff1a;https://leetcode.cn/problems/closest-nodes-queries-in-a-binary-search-tree/ 给你一个 二叉搜索树 的根节点 root &#xff0c;和一个由正整数组成、长度为 n 的数组 qu…

工具分享:linux命令在线查询工具:让你的系统操作更加便捷

linux命令在线查询工具&#xff1a;让你的系统操作更加便捷 在Linux系统中&#xff0c;命令行是一种非常高效的操作方式&#xff0c;但对于一些不熟悉命令的用户来说&#xff0c;可能会感到有些困惑。不过&#xff0c;现在有了一个非常实用的工具——linux命令在线查询工具&…

计算机体系架构初步入门

&#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;高性能&#xff08;HPC&#xff09;开发基础教程 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a;学习的本质就是极致重复! 目录 1 计算机五大…

onlyoffice api开发

编写代码 按照https://api.onlyoffice.com/editors/basic编写代码 <html> <head><meta charset"UTF-8"><meta name"viewport"content"widthdevice-width, user-scalableno, initial-scale1.0, maximum-scale1.0, minimum-scal…

vue+node.js美食分享推荐管理系统 io551

&#xff0c;本系统采用了 MySQL数据库的架构&#xff0c;在开始这项工作前&#xff0c;首先要设计好要用到的数据库表。该系统的使用者有二类&#xff1a;管理员和用户&#xff0c;主要功能包括个人信息修改&#xff0c;用户、美食类型、美食信息、订单信息、美食分享、课程大…

C#之WPF学习之路(5)

目录 内容控件&#xff08;2&#xff09; TextBlock文字块 TextBox文本框 TextBoxBase基类 TextBox控件 RichTextBox富文本框 ToolTip控件&#xff08;提示工具&#xff09; Popup弹出窗口 Image图像控件 属性成员 事件成员 内容控件&#xff08;2&#xff09; Tex…

基于ILI9341的TFT-LCD屏幕显示要点总结

目录 LCD常用引脚及其功能 LCD驱动流程 RGB565 关键指令 GRAM自增方向 设置开始坐标和结束坐标 写GRAM指令 读GRAM指令 本文主要参考视频如下&#xff1a; 第37讲 LCD-TFTLCD原理与配置介绍-M4_哔哩哔哩_bilibili 说明&#xff1a; 目前&#xff0c;市面上常见的TFT-LC…

程序员可以做什么副业呢?

如果你经常玩知乎、看公众号&#xff08;软件、工具、互联网这几类的&#xff09;你就会发现&#xff0c;好多资源连接都变成了夸克网盘、迅雷网盘的资源链接。 例如&#xff1a;天涯神贴&#xff0c;基本上全是夸克、UC、迅雷网盘的资源链接。 有资源的前提下&#xff0c;迅雷…

Django模型基础(ORM、字段类型、字段参数、增删改查和分页)

模型基础&#xff1a; 字段类型&#xff1a; django根据属性的类型确定以下信息 当前选择的数据库⽀持字段的类型渲染管理表单时使⽤的默认html控件在管理站点最低限度的验证django会为表增加⾃动增⻓的主键列&#xff0c;每个模型只能有⼀个主键列&#xff0c;如果使⽤选项…

【Java程序设计】【C00316】基于Springboot的中小型制造企业质量管理系统(有论文)

基于Springboot的中小型制造企业质量管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的中小型制造企业质量管理设计与实现&#xff0c;本系统有管理员以及工作人员二种角色权限 管理员&#xff1a;首页、个…

如何安装自定义模块?

自定义模块的安装方式如下&#xff1a; 进行了这些操作之后&#xff0c;你就会发现&#xff0c;自己写的代码块&#xff0c;成了可以调用的模块了。

软考41-上午题-【数据库】-关系代数运算3-外连接

一、外连接 连接的拓展&#xff0c;处理由于连接运算而缺失的信息。 1-1、回顾自然连接 1-2、左外连接 示例&#xff1a; 左边的表&#xff0c;数值是全的 1-3、右外连接 示例&#xff1a; 右边的表&#xff0c;数值是全的 1-4、全外连接 示例&#xff1a; 自然连接左外连接…

Java----认识异常

目录 一、异常的概念与体系结构 1.异常的概念 2.异常的体系结构 3.异常的分类 1. 编译时异常 2. 运行时异常 二、异常的处理 1.认识防御式编程 2.异常的抛出 3.异常的捕获 3.1 异常声明throws throws与throw的区别&#xff1a; 3.2 try-catch捕获并处理 3.3 finally …

Java 面向对象进阶 18 JDK8、9开始新增的方法;接口的应用;适配器设计模式;内部类(黑马)

一、JDK8开始新增的方法 默认方法不是抽象方法&#xff0c;所以不强制被重写&#xff1a; 但是如果被重写&#xff0c;就要去掉default关键字&#xff1a; public可以省略&#xff0c;但是default不可以省略&#xff1a; public是灰色的&#xff0c;代表可以省略 但是default是…

使用Makefile对多个shell命令进行编排

一、背景 在日常运维过程中&#xff0c;我们都会需要写大量的shell命令&#xff0c;如果是工程相对复杂的话&#xff0c;shell命令往往会封装为函数&#xff0c;交由主函数按需调用。 本文将引入Makefile来对复杂shell命令进行封装&#xff0c;让其变得易读易懂。 下面以一个…

PyPDF2:Python里的PDF忍者

目录&#x1f4d1; 1. 背景&#x1f4d1;2. PyPDF2简介&#xff1a;你的PDF小帮手&#x1f4d1;3. PyPDF2全能手册&#x1f4d1;3.1 读取PDF文件内容3.2 合并PDF文件3.3 分割PDF文件3.4 加密PDF文件 4. 总结&#x1f4d1; 1. 背景&#x1f4d1; 又是一个实际需求&#xff0c;将…