使用CSS实现音波加载效果


Posted in HTML / CSS onMay 07, 2023

先看效果(完整代码在底部):

使用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音波加载效果内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
Jun 28 HTML / CSS
CSS3实现滚动条动画效果代码分享
Aug 03 HTML / CSS
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
Oct 15 HTML / CSS
HTML5 progress和meter控件_动力节点Java学院整理
Jul 06 HTML / CSS
HTML5 解析规则分析
Aug 14 HTML / CSS
html5指南-7.geolocation结合google maps开发一个小的应用
Jan 07 HTML / CSS
Html5实现如何在两个div元素之间拖放图像
Mar 29 HTML / CSS
HTML中使用SVG与SVG预定义形状元素介绍
Jun 28 HTML / CSS
html5定位获取当前位置并在百度地图上显示
Aug 22 HTML / CSS
基于HTML5代码实现折叠菜单附源码下载
Nov 27 HTML / CSS
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
Feb 13 HTML / CSS
移动端html5模拟长按事件的实现方法
Sep 30 HTML / CSS
table不让td文字溢出操作方法
Dec 24 #HTML / CSS
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
Dec 24 #HTML / CSS
td 内容自动换行 table表格td设置宽度后文字太多自动换行
Dec 24 #HTML / CSS
HTML页面点击按钮关闭页面的多种方式
Dec 24 #HTML / CSS
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
Dec 24 #HTML / CSS
CSS使用SVG实现动态分布的圆环发散路径动画
Dec 24 #HTML / CSS
CSS中理解层叠性及权重如何分配
Dec 24 #HTML / CSS
You might like
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
php 文章采集正则代码
2009/12/28 PHP
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
ThinkPHP3.1的Widget新用法
2014/06/19 PHP
php中cookie实现二级域名可访问操作的方法
2014/11/11 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
php绘制一个扇形的方法
2015/01/24 PHP
javascript 写类方式之五
2009/07/05 Javascript
用jquery写的一个万年历(自写)
2014/01/20 Javascript
node.js中的console.timeEnd方法使用说明
2014/12/09 Javascript
nodeJs爬虫获取数据简单实现代码
2016/03/29 NodeJs
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
JS实现select选中option触发事件操作示例
2018/07/13 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
python调用cmd命令行制作刷博器
2014/01/13 Python
python中文编码问题小结
2014/09/28 Python
python中PIL安装简单教程
2016/04/21 Python
Python获取时间戳代码实例
2019/09/24 Python
解决Python中回文数和质数的问题
2019/11/24 Python
python通过移动端访问查看电脑界面
2020/01/06 Python
Python如何获取Win7,Win10系统缩放大小
2020/01/10 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
pandas统计重复值次数的方法实现
2021/02/20 Python
Python的Tqdm模块实现进度条配置
2021/02/24 Python
新大陆软件面试题
2016/11/24 面试题
语文教育专业应届生求职信
2013/11/23 职场文书
教学评估实施方案
2014/03/16 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
竞选副班长演讲稿
2014/04/24 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
未婚证明范本
2015/06/15 职场文书
运动会加油稿
2015/07/22 职场文书
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python