真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

web前端入門到實戰(zhàn):CSS陰影動畫優(yōu)化技巧-創(chuàng)新互聯(lián)

box-shaodw 在我們的工作中使用以及越來越多,伴隨陰影的動畫或多或少都有一點。假設(shè),我們有下面這樣一個盒子:

我們擁有十多年網(wǎng)頁設(shè)計和網(wǎng)站建設(shè)經(jīng)驗,從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁設(shè)計師為您提供的解決方案。為企業(yè)提供網(wǎng)站建設(shè)、網(wǎng)站制作、微信開發(fā)、微信小程序開發(fā)、手機網(wǎng)站制作設(shè)計H5頁面制作、等業(yè)務(wù)。無論您有什么樣的網(wǎng)站設(shè)計或者設(shè)計方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設(shè)計服務(wù)并滿足您的需求。
div {
   width: 100px;
    height: 100px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

希望 hover 的時候,盒陰影從 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) 過渡到 box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3)。

box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) --> box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3)

OK,最簡單的方法當(dāng)然是:

div:hover {
   width: 100px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
}
web前端開發(fā)學(xué)習(xí)Q-q-u-n: 731771211,分享學(xué)習(xí)的方法和需要注意的小細節(jié),不停更新最新的教程和學(xué)習(xí)方法(詳細的前端項目實戰(zhàn)教學(xué)視頻,PDF)

因為過渡動畫是在兩個不同的盒陰影狀態(tài)在發(fā)生,所以在過渡動畫的時間內(nèi),瀏覽器會不斷的重繪盒陰影。而又由于陰影屬于耗性能樣式,所以這種動畫給人的感覺多少有些卡頓。

這里有一個小技巧可以優(yōu)化這種情況下的陰影動畫。

使用偽元素及透明度進行優(yōu)化

使用偽元素及透明度進行優(yōu)化,我們給上述元素添加一個 before 偽元素,大小與父 div 一致,并且提前給這個元素添加好所需要的最終的盒陰影狀態(tài),但是元素的透明度為 0。

div {
    position: relative;
   width: 100px;
    height: 100px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

div::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
   width: 100%;
    height: 100%;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
    opacity: 0;
}

然后,在 hover 的時候,我們只需要將偽元素的透明度從 0 設(shè)置為 1 即可。

div:hover::before {
    opacity: 1;
}

這樣做的好處是,實際在進行的陰影變化,其實只是透明度的變化,而沒有對陰影進行不斷的重繪,有效的提升了陰影動畫的流暢程度,讓它看起來更加絲滑。

web前端入門到實戰(zhàn):CSS 陰影動畫優(yōu)化技巧

為什么對透明度 opacity 進行動畫要比對 box-shadow 進行動畫性能更好呢?可以看看這里這張表格,列舉了不同屬性變換對頁面重排、重繪的影響:

web前端入門到實戰(zhàn):CSS 陰影動畫優(yōu)化技巧

存在的問題,另外一種方案

原文中上述這個方案其實并不算太完美,因為最終的效果是兩個陰影的疊加效果,可能會在整體的感覺上陰影顏色更深了一點。

所以需要對最終狀態(tài)的陰影進行微調(diào)一下,削弱一點效果,盡量讓兩個陰影的疊加效果與單一一個陰影效果相近。

當(dāng)然,我們可以再對上述方案進行優(yōu)化,我們再使用一個 ::after 偽元素,::after 偽元素設(shè)置為初始狀態(tài)且透明度為1,::before 偽元素設(shè)置為末尾狀態(tài)且透明度為0:

div {
    position: relative;
   width: 100px;
    height: 100px;
}

div::before {
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
    opacity: 0;
}

div::after {
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
web前端開發(fā)學(xué)習(xí)Q-q-u-n: 731771211,分享學(xué)習(xí)的方法和需要注意的小細節(jié),不停更新最新的教程和學(xué)習(xí)方法(詳細的前端項目實戰(zhàn)教學(xué)視頻,PDF)

實際 hover 的時候,對兩個偽元素進行一顯一隱,這樣最終的效果只有一個陰影效果,沒有陰影的疊加,與直接對陰影進行過渡變化效果一致:

div:hover::before {
    opacity: 1;
}

div:hover::after {
    opacity: 0;
}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


分享題目:web前端入門到實戰(zhàn):CSS陰影動畫優(yōu)化技巧-創(chuàng)新互聯(lián)
瀏覽地址:http://weahome.cn/article/gdesd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部