使用CSS實(shí)現(xiàn)音波加載效果
先看效果(完整代碼在底部):

這個(gè)是比較常見(jiàn)的一個(gè)簡(jiǎn)約效果,拿下~
實(shí)現(xiàn)(可一步一步實(shí)現(xiàn)):
0.基本css樣式(復(fù)制即可):
*{
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.先定義標(biāo)簽(詳解):
<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就是每個(gè)圈。 "- -i:1;"是css的var函數(shù)的運(yùn)用,點(diǎn)這看用法~
2.底層盒子基本樣式:
.container{
position: relative;
width: 20px;
height: 20px;
transform-style: preserve-3d;
transform: perspective(500px) rotateX(50deg) translateZ(50px);
}
position:relative 相對(duì)定位。
transform-style:preserve-3d 子元素獲得3D位置。
perspective:元素距離視圖的距離,以像素計(jì)。
rotateX(50deg) 繞X軸旋轉(zhuǎn)50度。
translateZ(50px); 往Z軸偏移50px。
3.每個(gè)圓圈的css樣式,設(shè)置動(dòng)畫:
.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; 絕對(duì)定位。
calc() 函數(shù)用于動(dòng)態(tài)計(jì)算長(zhǎng)度值。
top: calc(-9px * var(- -i));
left: calc(-9px * var(- -i));
bottom: calc(-9px * var(- -i));
right: calc(-9px * var(- -i)); 通過(guò)calc()計(jì)算每個(gè)圈的大小。
border: 5px solid rgba(0, 162, 255,0.8); 藍(lán)色邊框。
box-shadow: 0 6px 0 rgb(0, 162, 255),
inset 0 6px 0 rgba(0, 162, 255,.9); 陰影。一個(gè)外陰影,一個(gè)內(nèi)陰影。目的是為了讓圓圈有點(diǎn)立體效果。
border-radius: 50%; 角弧度。
animation: move 1.5s ease-in-out infinite alternate; 定義動(dòng)畫。
animation-delay: calc(var(–i) * 0.1s); 通過(guò)calc()計(jì)算每個(gè)圈延遲多久后執(zhí)行動(dòng)畫。
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>
到此這篇關(guān)于使用CSS實(shí)現(xiàn)音波加載效果的文章就介紹到這了,更多相關(guān)CSS音波加載效果內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章

CSS解決uniapp使用image標(biāo)簽圖片無(wú)法撐滿全屏問(wèn)題(最新解決方法)
這篇文章主要介紹了CSS解決uniapp使用image標(biāo)簽圖片無(wú)法撐滿全屏問(wèn)題(最新解決方法),本片文章主要講解了如何解決,開(kāi)發(fā)中遇到需要讓圖片撐滿全屏,但實(shí)際圖片會(huì)留空白的問(wèn)2023-04-23
使用css實(shí)現(xiàn)水波加載動(dòng)畫效果
這篇文章主要介紹了使用css實(shí)現(xiàn)水波加載動(dòng)畫效果,技術(shù)上只用到了css+html,還是非常容易學(xué)習(xí)的,做出來(lái)的效果也很不錯(cuò),需要的朋友可以參考下2023-04-23
CSS為HTML標(biāo)記語(yǔ)言提供了一種樣式描述,定義了其中元素的顯示方式,由于CSS2的大量普及應(yīng)用,逐漸的從CSS2開(kāi)始大家就簡(jiǎn)稱為CSS,那么CSS3.0和CSS2.0有什么區(qū)別2023-04-18
CSS+JS實(shí)現(xiàn)動(dòng)態(tài)翻書(shū)效果
本文主要介紹了CSS+JS實(shí)現(xiàn)動(dòng)態(tài)翻書(shū)效果,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-17
CSS中height:100vh和height:100%的區(qū)別
本文主要介紹了CSS中height:100vh和height:100%的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)2023-04-06
通過(guò)HTML+CSS實(shí)現(xiàn)折疊樣式完整代碼
這篇文章主要介紹了通過(guò)HTML+CSS實(shí)現(xiàn)折疊樣式完整代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-03
CSS實(shí)現(xiàn)鼠標(biāo)懸停svg圖標(biāo)描邊效果
這篇文章主要介紹了CSS實(shí)現(xiàn)鼠標(biāo)懸停svg圖標(biāo)描邊效果,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-30
純CSS實(shí)現(xiàn)了下劃線的交互動(dòng)畫效果
本文主要介紹了純CSS實(shí)現(xiàn)了下劃線的交互動(dòng)畫效果,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)2023-03-06CSS 實(shí)現(xiàn)塊級(jí)元素靠右的方法
想要塊級(jí)元素居右往往設(shè)置 margin-right: 0 屬性是行不通的,下面介紹五種方法,不同場(chǎng)景適用不同方法,感興趣的朋友跟隨小編一起看看吧2023-03-06
純CSS實(shí)現(xiàn)鼠標(biāo)懸停圖片上升顯示描述案例
當(dāng)我們想在圖片上面放置一些文字內(nèi)容時(shí),發(fā)現(xiàn)不管怎么放置,要么就是圖片影響到文字的觀感,要么就是文字擋住圖片的細(xì)節(jié),那么怎么可以既看到圖片的細(xì)節(jié)又可以看到對(duì)圖片的2023-03-01







