CSS實(shí)現(xiàn)多層嵌套結(jié)構(gòu)最外層旋轉(zhuǎn)其它層不旋轉(zhuǎn)效果
有這樣一個(gè)場(chǎng)景:一個(gè)圓形容器,最外層容器的背景為圓弧,現(xiàn)在要將最外層的圓弧進(jìn)行旋轉(zhuǎn),保證里面的容器里面的內(nèi)容不進(jìn)行旋轉(zhuǎn),接下來(lái)將跟大家分享一種解決方案,先看下最終實(shí)現(xiàn)的效果:
實(shí)現(xiàn)思路
- 最外層div設(shè)置邊框倒角百分之50,溢出隱藏
- 設(shè)置最外層背景為圓弧的背景圖
- 定義外層旋轉(zhuǎn)動(dòng)畫(huà),旋轉(zhuǎn)度數(shù)為正數(shù)
- 定義內(nèi)層旋轉(zhuǎn)動(dòng)畫(huà),旋轉(zhuǎn)度數(shù)為負(fù)數(shù)
- 啟動(dòng)動(dòng)畫(huà),開(kāi)始旋轉(zhuǎn)
- 外層為正數(shù)旋轉(zhuǎn),內(nèi)層為負(fù)數(shù)旋轉(zhuǎn),剛好抵消,理想效果實(shí)現(xiàn)
實(shí)現(xiàn)過(guò)程
dom結(jié)構(gòu)部分:布局外層div和內(nèi)層div
load-panel為外層div, headPortrait-img-panel 為內(nèi)層div, loadWhirl 為外層旋轉(zhuǎn)動(dòng)畫(huà), avatarRotation 為內(nèi)層旋轉(zhuǎn)動(dòng)畫(huà)。
<!--頭像區(qū)域-->
<div class="headPortrait-panel">
<!--加載層-->
<div class="load-panel loadWhirl">
<!--頭像顯示層-->
<div class="headPortrait-img-panel avatarRotation">
<img src="../assets/img/login/LoginWindow_BigDefaultHeadImage@2x.png"/>
</div>
</div>
</div>
css部分:對(duì)樣式進(jìn)行布局,實(shí)現(xiàn)旋轉(zhuǎn)動(dòng)畫(huà)邏輯。
/*頭像區(qū)域*/
.headPortrait-panel{
width: 100%;
height: 200px;
display: flex;
justify-content: center;
align-items: center;
margin-top: 50px;
/*加載層*/
.load-panel{
width: 240px;
height: 240px;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
background: url("../img/login/loading-circle@2x.png");
img{
width: 100%;
height: 100%;
}
// 頭像旋轉(zhuǎn)動(dòng)畫(huà)
.avatarRotation{
animation: internalAvatar 3s linear;
// 動(dòng)畫(huà)無(wú)限循環(huán)
animation-iteration-count:infinite;
}
/*頭像顯示層*/
.headPortrait-img-panel{
width: 200px;
height: 200px;
border-radius: 50%;
overflow: hidden;
border: solid 1px #ebeced;
img{
width: 100%;
height: 100%;
}
}
}
// 外部旋轉(zhuǎn)動(dòng)畫(huà)
.loadWhirl{
animation: externalHalo 3s linear;
// 動(dòng)畫(huà)無(wú)限循環(huán)
animation-iteration-count:infinite;
}
}
// 定義外部光環(huán)旋轉(zhuǎn)動(dòng)畫(huà)
@keyframes externalHalo {
0%{
transform: rotate(0deg);
}
25%{
transform: rotate(90deg);
}
50%{
transform: rotate(180deg);
}
100%{
transform: rotate(360deg);
}
}
// 定義內(nèi)部頭像旋轉(zhuǎn)動(dòng)畫(huà)
@keyframes internalAvatar {
0%{
transform: rotate(0deg);
}
25%{
transform: rotate(-90deg);
}
50%{
transform: rotate(-180deg);
}
100%{
transform: rotate(-360deg);
}
}
項(xiàng)目地址
上述代碼地址:chat-system
項(xiàng)目克隆到本地后,訪問(wèn) http://localhost:8020/login 即可查看效果
本文實(shí)現(xiàn)效果文件路徑:src/views/login.vue
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
純css多種方法實(shí)現(xiàn)div中單行文字、多行文字及嵌套div垂直水平居中
經(jīng)常遇到要居中的問(wèn)題,水平居中問(wèn)題比較好解決,而垂直居中問(wèn)題因?yàn)関ertical-align經(jīng)常失效,下面與大家分享下幾個(gè)不錯(cuò)的解決方法2014-04-24LESS 讓css也支持變量,運(yùn)算符,include,嵌套規(guī)則等等
最近在網(wǎng)上看到1個(gè)很有意思的CSS擴(kuò)展,這里介紹給大家。LESS 最早是1個(gè)ruby的gem,用于擴(kuò)展css的語(yǔ)法,用了LESS后,可以在css中使用變量,運(yùn)算符,include,嵌套規(guī)則等等。2010-07-04- 除非你的網(wǎng)站只有一頁(yè),不然你一定會(huì)用的導(dǎo)航的.事實(shí)上,導(dǎo)航在網(wǎng)頁(yè)設(shè)計(jì)中是最重要部分之一.你要用很多時(shí)間去考慮如何讓瀏覽者更容易訪問(wèn)你的網(wǎng)站.2009-11-30
簡(jiǎn)單學(xué)習(xí)css組合與CSS嵌套的寫(xiě)法
網(wǎng)頁(yè)制作Webjx文章簡(jiǎn)介:簡(jiǎn)單學(xué)習(xí)css組合與CSS嵌套的寫(xiě)法. CSS組合 你不必重復(fù)有相同屬性的多個(gè)選擇符,你只要用英文逗號(hào)(,)隔開(kāi)選擇符就可以了2009-04-02
CSS 即將支持嵌套,SASS/LESS 等預(yù)處理器該何去何從
隨著 CSS 自定義屬性(CSS Variable)的大規(guī)模兼容,到如今 CSS 即將支持嵌套,一些預(yù)處理器的核心功能已經(jīng)被 CSS 原生支持,這是否表示 SASS/LESS 等預(yù)處理器已無(wú)用武之地2021-08-10


