使用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)翻書效果
本文主要介紹了CSS+JS實(shí)現(xiàn)動(dòng)態(tài)翻書效果,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-17CSS中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-03CSS實(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