使用CSS实现音波加载效果
先看效果(完整代码在底部):
这个是比较常见的一个简约效果,拿下~
实现(可一步一步实现):
0.基本css样式(复制即可):
*{ margin: 0; padding: 0; box-sizing: border-box; } body{ height: 100vh; display: flex; justify-content: center; align-items: center; background-color: rgb(4, 6, 17); }
1.先定义标签(详解):
<div class="container"> <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> </div>
.container就是底层盒子,span就是每个圈。 "- -i:1;"是css的var函数的运用,点这看用法~
2.底层盒子基本样式:
.container{
position: relative;
width: 20px;
height: 20px;
transform-style: preserve-3d;
transform: perspective(500px) rotateX(50deg) translateZ(50px);
}
position:relative 相对定位。
transform-style:preserve-3d 子元素获得3D位置。
perspective:元素距离视图的距离,以像素计。
rotateX(50deg) 绕X轴旋转50度。
translateZ(50px); 往Z轴偏移50px。
3.每个圆圈的css样式,设置动画:
.container span{
position: absolute;
top: calc(-9px * var(--i));
left: calc(-9px * var(--i));
bottom: calc(-9px * var(--i));
right: calc(-9px * var(--i));
border: 5px solid rgba(0, 162, 255,0.8);
box-shadow: 0 6px 0 rgb(0, 162, 255),
inset 0 6px 0 rgba(0, 162, 255,.9);
/* background-color: rgba(0, 162, 255,0); */
border-radius: 50%;
animation: move 1.5s ease-in-out infinite alternate;
animation-delay: calc(var(--i) * 0.1s);
}
@keyframes move{
0%,100%{
transform: translateZ(0px);
}
50%{
transform: translateZ(-100px);
}
}
position: absolute; 绝对定位。
calc() 函数用于动态计算长度值。
top: calc(-9px * var(- -i));
left: calc(-9px * var(- -i));
bottom: calc(-9px * var(- -i));
right: calc(-9px * var(- -i)); 通过calc()计算每个圈的大小。
border: 5px solid rgba(0, 162, 255,0.8); 蓝色边框。
box-shadow: 0 6px 0 rgb(0, 162, 255),
inset 0 6px 0 rgba(0, 162, 255,.9); 阴影。一个外阴影,一个内阴影。目的是为了让圆圈有点立体效果。
border-radius: 50%; 角弧度。
animation: move 1.5s ease-in-out infinite alternate; 定义动画。
animation-delay: calc(var(–i) * 0.1s); 通过calc()计算每个圈延迟多久后执行动画。
transform: translateZ(0px); Z轴方向的偏移。
完整代码♪(^∀^●)ノ:
<!DOCTYPE html> <html lang="zh-CN"> <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>Document</title> <style> *{ margin: 0; padding: 0; box-sizing: border-box; } body{ height: 100vh; display: flex; justify-content: center; align-items: center; background-color: rgb(4, 6, 17); } .container{ position: relative; width: 20px; height: 20px; transform-style: preserve-3d; transform: perspective(500px) rotateX(50deg) translateZ(50px); } .container span{ position: absolute; top: calc(-9px * var(--i)); left: calc(-9px * var(--i)); bottom: calc(-9px * var(--i)); right: calc(-9px * var(--i)); border: 5px solid rgba(0, 162, 255,0.8); box-shadow: 0 6px 0 rgb(0, 162, 255), inset 0 6px 0 rgba(0, 162, 255,.9); /* background-color: rgba(0, 162, 255,0); */ border-radius: 50%; animation: move 1.5s ease-in-out infinite alternate; animation-delay: calc(var(--i) * 0.1s); } @keyframes move{ 0%,100%{ transform: translateZ(0px); } 50%{ transform: translateZ(-100px); } } </style> </head> <body> <div class="container"> <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> </div> </body> </html>
到此这篇关于使用CSS实现音波加载效果的文章就介绍到这了,更多相关CSS音波加载效果内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
相关文章
CSS解决uniapp使用image标签图片无法撑满全屏问题(最新解决方法)
这篇文章主要介绍了CSS解决uniapp使用image标签图片无法撑满全屏问题(最新解决方法),本片文章主要讲解了如何解决,开发中遇到需要让图片撑满全屏,但实际图片会留空白的问2023-04-23- 这篇文章主要介绍了使用css实现水波加载动画效果,技术上只用到了css+html,还是非常容易学习的,做出来的效果也很不错,需要的朋友可以参考下2023-04-23
- CSS为HTML标记语言提供了一种样式描述,定义了其中元素的显示方式,由于CSS2的大量普及应用,逐渐的从CSS2开始大家就简称为CSS,那么CSS3.0和CSS2.0有什么区别2023-04-18
- 本文主要介绍了CSS+JS实现动态翻书效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-04-17
CSS中height:100vh和height:100%的区别
本文主要介绍了CSS中height:100vh和height:100%的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学2023-04-06- 这篇文章主要介绍了通过HTML+CSS实现折叠样式完整代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-04-03
- 这篇文章主要介绍了CSS实现鼠标悬停svg图标描边效果,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-03-30
- 本文主要介绍了纯CSS实现了下划线的交互动画效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学2023-03-06
- 想要块级元素居右往往设置 margin-right: 0 属性是行不通的,下面介绍五种方法,不同场景适用不同方法,感兴趣的朋友跟随小编一起看看吧2023-03-06
- 当我们想在图片上面放置一些文字内容时,发现不管怎么放置,要么就是图片影响到文字的观感,要么就是文字挡住图片的细节,那么怎么可以既看到图片的细节又可以看到对图片的2023-03-01
最新评论