国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
>三個主要CSS盒子暗示動畫事件
如何保持最佳性能
>這主要適用于將具有陰影的主要元素,即盒子。使用變換屬性,而不是更改諸如保證金之類的布局屬性,將減少樣式重計的數(shù)量。
>已經(jīng)確定,任何涉及盒子陰影屬性的動畫都會影響性能。因此,如果您必須擁有CSS盒子影畫動畫,這里有一些有用的技巧可以牢記。
我可以使用盒子遮陽元素應用多個陰影嗎?
>我可以在任何HTML元素上使用盒子陰影嗎?
首頁 web前端 css教程 如何使CSS框陰影動畫并優(yōu)化性能

如何使CSS框陰影動畫并優(yōu)化性能

Feb 11, 2025 am 08:24 AM

如何使CSS框陰影動畫并優(yōu)化性能

>在本文中,您將學習如何在不降低瀏覽器性能的情況下對CSS框陰影進行動畫。

在CSS中,Box-Shadow屬性用于將陰影添加到Web元素中,這些陰影可以是動畫的。但是,影子動畫會影響瀏覽器的性能,從而在渲染頁面時會滯后。

本指南旨在針對具有HTML的工作知識和CSS動畫的前端開發(fā)人員。

鑰匙要點

    >動畫CSS框陰影會影響瀏覽器性能,可能導致頁面渲染期間滯后。因此,至關重要的是優(yōu)化這些動畫以維持快速的頁面加載時間,這是用戶滿意度和轉換率的關鍵因素。
  • >
  • > css偽造動畫觸發(fā)了三個主要過程:繪畫,布局和合成。繪畫涉及瀏覽器填充顏色的像素,是資源最密集的。布局更改涉及重新計算頁面的結構,還消耗了大量資源。僅影響頁面部分的組合是要求最少的過程。 為了優(yōu)化性能,開發(fā)人員可以采用多種技術。其中包括僅動畫陰影的不透明度而不是更改其偏移值,從而減少了重新粉刷的需求;使用多個盒子陰影層,動畫時表現(xiàn)出色。并為提供陰影的偽元素進行動畫,從而大大減少重新粉刷和總體CPU工作量的數(shù)量。
  • >保持陰影動畫的最小化和僅動畫交互式元素以減少CPU工作量。如果需要陰影動畫,開發(fā)人員應權衡深度視覺吸引力與僅更改不透明度的性能優(yōu)勢之間的權衡。他們還應考慮為提供陰影的偽元素動畫所需的額外代碼。
  • 為什么這很重要
  • >一個網(wǎng)頁必須有很短的負載時間,理想情況下是五秒鐘。研究表明,快速的頁面加載可以極大地提高轉化率。進一步的研究表明,有70%的用戶表示網(wǎng)站的速度會影響他們從在線商店購買的意愿?;旧希焖僬军c平等快樂的用戶。
  • >
>在進一步之前,這里有一個演示盒子陰影動畫可以在網(wǎng)頁上運行的演示。您可以滾動瀏覽并與Web元素進行交互。

參見筆

通過sitepoint(@sitepoint)

的帶有陰影動畫的Web元素 在Codepen上。

>三個主要CSS盒子暗示動畫事件

由于幕后發(fā)生的事情,CSS彈幕動畫可能會很重。在Box Shadow Animation(或任何形式的動畫)中觸發(fā)了三個主要過程或事件。這些事件是繪畫,布局和合成。

  • 繪畫。在繪畫中,瀏覽器充滿了顏色的像素,而Box-Shadow是觸發(fā)此事件的CSS屬性之一?;旧希趧赢嫷拿總€幀中都會創(chuàng)建一個新的陰影。根據(jù)Mozilla的說法,理想的CSS動畫應在60fps。

  • 布局。一些動畫會改變頁面的結構,這可能會導致許多樣式的重新計算。一個很好的例子是側邊欄在擴展時將其他元素推開。引起的CSS屬性包括填充,邊距,邊框。

    >

    簡單地說,如果動畫屬性影響其他元素,它將改變頁面的布局,導致重新計算 - 使用大量系統(tǒng)資源。

  • >合成。在合成中,只有頁面的一部分更改。 CSS屬性(如不透明度和轉換)僅影響其應用于的元素。這將意味著更少的樣式重新計算,并且動畫更順暢。組合是所有三個中的任務最少的過程。
  • >

  • >使用瀏覽器的檢查器工具,您可以實時觀察此過程。首先,打開檢查器工具(如下圖所示),然后單擊選項卡右上角的三個點。檢查更多工具并選擇渲染。

如何使CSS框陰影動畫并優(yōu)化性能在此示例中,選擇了油漆閃爍。每次有繪畫事件時,屏幕都會閃爍綠色:

> navbar:

  • 如何使CSS框陰影動畫并優(yōu)化性能文本卡:

  • 如何使CSS框陰影動畫并優(yōu)化性能導航鏈接:

  • 如何使CSS框陰影動畫并優(yōu)化性能
  • >您會發(fā)現(xiàn),當您懸停在綠色時,或者刷新頁面時,每個元素都會閃爍綠色。您也可以對布局進行相同的實驗:只需取消選中的油漆閃爍并選擇布局偏移區(qū)域。

>

請注意,涂料閃爍可能在Codepen演示中不起作用,因此您需要使用文本編輯器的實時預覽嘗試一下。下面的視頻顯示了您應該看到的內容。

目標是最大程度地減少繪畫和布局的變化,因為它們使用了更多的系統(tǒng)資源。

檢查性能

作為開發(fā)人員,您可能沒有任何問題,因為您有一臺快速計算機。但是,您必須考慮使用較慢的PC和不可靠的Internet連接的用戶。僅僅因為它在您的計算機上看起來不錯,并不意味著其他地方都一樣。

> 一個盒子陰影具有四個值和一個顏色。這四個值分別是陰影的水平位置(x偏移),垂直位置(y偏移),擴展和模糊半徑。典型的陰影動畫將涉及其中一個或多個值的更改:>

讓我們創(chuàng)建一個簡單的盒子陰影動畫,從一些html開始:

<span>box-shadow: <x-offset> <y-offset> <spread> <blur> <color>;
</span>
>這是一些首字母和最終陰影的CSS:

這是結果:
<span><span><span><body</span>></span>
</span>  <span><span><span><div</span> class<span>="box"</span>></span><span><span></div</span>></span>
</span><span><span><span></body</span>></span>
</span>

>

參見筆
<span><span>.box</span> {
</span>  <span>box-shadow: 0px 5px 10px 0px <span>rgba(0, 0, 0, 0.5)</span>;
</span>  <span>transition: transform ease 0.5s, box-shadow ease 0.5s;
</span><span>}
</span><span><span>.box:hover</span> {
</span>  <span>transform: translateY(-5px);
</span>  <span>box-shadow: 0px 10px 20px 2px <span>rgba(0, 0, 0, 0.25)</span>;
</span><span>}
</span>
sitepoint(@sitepoint)的動畫盒子陰影

在Codepen上。


對于動畫,我們正在更改Y偏移,模糊和傳播的值。我們也將帶有更透明的最終陰影。

>現(xiàn)在讓我們來看看幕后的情況,我們運行了0.5s的動畫。在瀏覽器上,通過右鍵單擊和選擇“檢查”打開開發(fā)人員工具。工具打開后,請轉到“性能”選項卡。您可以記錄影子動畫;只有幾秒鐘就足以看到發(fā)生了什么。

>

下面的屏幕截圖顯示了您從Chrome的Devtools中找到的。

>陰影的動畫周期懸停在上下,在頂部突出顯示,并且發(fā)生的過程分解在底部顯示。分解表明,腳本需要7ms,渲染需要55毫秒,繪畫持續(xù)30ms。

現(xiàn)在,這些數(shù)字看起來還可以,但是當CPU慢四倍時會發(fā)生什么?您可以從“性能”選項卡中防止CPU速度。

>以下圖顯示了使用較慢的CPU運行相同動畫時會發(fā)生什么。如何使CSS框陰影動畫并優(yōu)化性能

在這個新過程中,加載需要6ms。腳本最高為52毫秒,渲染已翻了一番,達到117ms,現(xiàn)在繪畫為72毫秒。

>您還可以節(jié)流網(wǎng)絡速度,并使CPU甚至更慢。影子動畫使用了大量系統(tǒng)資源,我們將尋求消除一些負載。>

>重要的是要注意,轉換屬性在CPU執(zhí)行方式中起著作用。稍后再詳細介紹。

>

如何保持最佳性能

如果您必須在網(wǎng)頁上進行動畫陰影,則值得使它們更具性能。在本節(jié)中,您將了解可以調整陰影動畫的各種方式,以便降低性能。

我們將介紹以下內容:

    動畫不透明度
  1. 有多個盒子層
  2. >
  3. 動畫偽元素
  4. 使用變換屬性
動畫不透明度

使用RGBA顏色時,Alpha通道控制不透明度。在CPU上進行動畫陰影時,僅更改Alpha頻道就不會像更改陰影的偏移和傳播值那樣難。

在第一個動畫中,只有陰影的不透明度在變化,而在第二個動畫中,y offset從10px變?yōu)?0px,差異從20px變?yōu)?0px。

>在6倍放緩時他們的性能(因此您可以清楚地看到性能圖),從動畫開始,只有不透明度正在改變:
<span>box-shadow: <x-offset> <y-offset> <spread> <blur> <color>;
</span>

>大約需要兩秒鐘才能懸停在盒子上和盒子上?,F(xiàn)在將其與第二個影子動畫進行比較。

如何使CSS框陰影動畫并優(yōu)化性能

再次開出兩秒鐘,所有事件的時間都有明顯的增加。繪畫之前是96毫秒,現(xiàn)在翻了一番,達到187毫秒。渲染是合成的一部分,也從97ms上升到178ms。 因此,僅更改陰影的不透明度會產(chǎn)生更具性能的動畫。

這是這兩個動畫的現(xiàn)場演示。如何使CSS框陰影動畫并優(yōu)化性能

參見筆

sitepoint(@sitepoint)

的動畫不透明度與動畫偏移 在Codepen上。

>層狀陰影


如果您觀察到桌子周圍的陰影或將物體提起上面,您會注意到其最黑暗的陰影區(qū)域最接近物體,并且隨著它向外擴散時,它變得越來越輕。 一個盒子陰影,復制這種效果并不容易。分層陰影看起來好多了。即使增加了陰影層,它們也會產(chǎn)生更多的性能動畫。

讓我們比較單個盒子陰影和多層陰影的性能:

這個動畫具有148ms的渲染和133ms的繪畫。

現(xiàn)在,讓我們有一個帶有兩個盒子陰影層的陰影動畫:>

<span><span><span><body</span>></span>
</span>  <span><span><span><div</span> class<span>="box"</span>></span><span><span></div</span>></span>
</span><span><span><span></body</span>></span>
</span>

差異很明顯。分層陰影不僅會產(chǎn)生看起來更好的陰影效果,而且在動畫時表現(xiàn)出色。渲染已從148ms降低到74ms,繪畫也從133ms降至74ms。

這是兩者的現(xiàn)場演示。

>

參見筆

單個陰影與層面陰影動畫按SitePoint(@SitePoint)
在Codepen上。

現(xiàn)在,讓我們嘗試一些不同的東西,在動畫過程中添加第二個陰影:

<span>box-shadow: <x-offset> <y-offset> <spread> <blur> <color>;
</span>

如何使CSS框陰影動畫并優(yōu)化性能>在動畫過程中添加第二個陰影層的性能不如從一開始就擁有兩層,但它的繪畫仍然具有100毫秒的繪畫,而單個盒子射擊動畫則是133毫秒,這是一個改進。

>最終,由您決定您的影子外觀以及將使用哪種方法來創(chuàng)建它。

動畫偽元素

這次,我們將在不更改盒子陰影屬性的情況下復制影子動畫。從以前的演示中,我們可以看到影子動畫期間仍有很多重新粉刷。如果您要更改盒子陰影值,則無法避免此過程。

>您會在本節(jié)的末尾看到繪畫將幾乎完全消除。它將涉及更多的代碼行,但是我們將獲得更多性能的影子動畫。

>因此,在盒子的基本樣式之后,創(chuàng)建一個:偽元素之后并給它給它一個盒子陰影,這將是動畫之后陰影的最終狀態(tài)

現(xiàn)在,您要做的就是更改偽元素的不透明度:懸停:

>讓我們在常規(guī)的影子動畫旁邊看一下。
<span><span><span><body</span>></span>
</span>  <span><span><span><div</span> class<span>="box"</span>></span><span><span></div</span>></span>
</span><span><span><span></body</span>></span>
</span>

<span><span>.box</span> {
</span>  <span>box-shadow: 0px 5px 10px 0px <span>rgba(0, 0, 0, 0.5)</span>;
</span>  <span>transition: transform ease 0.5s, box-shadow ease 0.5s;
</span><span>}
</span><span><span>.box:hover</span> {
</span>  <span>transform: translateY(-5px);
</span>  <span>box-shadow: 0px 10px 20px 2px <span>rgba(0, 0, 0, 0.25)</span>;
</span><span>}
</span>

參見筆

sitepoint(@sitepoint)

在Codepen上。


>在此處視覺上沒有太多要進行的。真正的區(qū)別在于他們的表現(xiàn)。常規(guī)盒子動畫的結果如下所示。
>

>它具有230ms的渲染時間,繪畫的211毫秒。現(xiàn)在是偽陰影動畫。

如何使CSS框陰影動畫并優(yōu)化性能

這次,我們有148ms的渲染,只有51毫秒的繪畫。還有更多代碼,但結果值得。

使用變換屬性

>這主要適用于將具有陰影的主要元素,即盒子。使用變換屬性,而不是更改諸如保證金之類的布局屬性,將減少樣式重計的數(shù)量。

此屬性可以與翻譯或比例屬性一起使用,以模擬將元素從頁面上抬起,從而產(chǎn)生深度的幻覺。

一些有用的提示

>已經(jīng)確定,任何涉及盒子陰影屬性的動畫都會影響性能。因此,如果您必須擁有CSS盒子影畫動畫,這里有一些有用的技巧可以牢記。

>

首先,保持最小。為此,不要在每個元素上扔陰影。其次,僅動畫交互式元素。無需動畫任何沒有功能的東西。這將減少CPU的工作量并大大提高性能。

結論

陰影可以視覺上增強您的網(wǎng)站,但它們也會影響性能,尤其是在動畫方面。在本文中,我們測試了有關動畫陰影的各種方法,并比較了它們的性能。動畫陰影觸發(fā)了三個事件 - 繪畫,布局更改和合成 - 首先是任務最多的事件。

理想的解決方案是完全不動畫陰影(因為它們看起來不錯?。H绻娴南霝楹凶雨幱皩傩宰鰟赢?,而只是更改不透明度而不是更改偏移值將減少重新粉刷。捕獲是,您會失去陰影要提供的深度幻想。另一種方法是使兩個盒子陰影層動畫。該解決方案在視覺上令人愉悅,即使具有額外的陰影。

>最后一個選項是動畫不是盒子陰影,而是一個提供陰影的偽元素。這大大減少了重新粉刷的數(shù)量以及CPU在運行動畫方面所做的整體工作。您將編寫更多代碼,但這是確保表現(xiàn)良好的最好的選擇。

>

相關內容:

> css:is,:where and:

>將元素隱藏在CSS

中的10種方法
    book:
  • > css master
  • CSS中的REM:理解和使用REM單位
  • 關于CSS Shadow的常見問題解答 >
  • CSS中的盒子陰影是什么? >>盒子陰影屬性中的值是什么意思?

    值代表:水平偏移:陰影的水平距離。
    垂直偏移:陰影的垂直距離。
    模糊半徑:施加到陰影的模糊量: 選修的。
    顏色:陰影的顏色。

    我可以使用盒子遮陽元素應用多個陰影嗎?

    是的,您可以通過逗號分隔每個陰影來應用多個陰影。

    >我可以在任何HTML元素上使用盒子陰影嗎?

    es,您可以將盒子陰影應用于大多數(shù)HTML元素,例如Divs,段落,標題等。它是一種用途屬性,用于增強元素的可視化呈現(xiàn)。

    使用盒子陰影時的性能注意事項?

    >過度使用盒子陰影,尤其是具有較大的模糊值,可能會影響性能。建議明智地使用陰影來保持光滑的用戶體驗,尤其是在功能較低的設備上。

以上是如何使CSS框陰影動畫并優(yōu)化性能的詳細內容。更多信息請關注PHP中文網(wǎng)其他相關文章!

本站聲明
本文內容由網(wǎng)友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

什么是'渲染障礙CSS”? 什么是'渲染障礙CSS”? Jun 24, 2025 am 12:42 AM

CSS會阻塞頁面渲染是因為瀏覽器默認將內聯(lián)和外部CSS視為關鍵資源,尤其是使用引入的樣式表、頭部大量內聯(lián)CSS以及未優(yōu)化的媒體查詢樣式。1.提取關鍵CSS并內嵌至HTML;2.延遲加載非關鍵CSS通過JavaScript;3.使用media屬性優(yōu)化加載如打印樣式;4.壓縮合并CSS減少請求。建議使用工具提取關鍵CSS,結合rel="preload"異步加載,合理使用media延遲加載,避免過度拆分與復雜腳本控制。

外部與內部CSS:最好的方法是什么? 外部與內部CSS:最好的方法是什么? Jun 20, 2025 am 12:45 AM

thebestapphachforcssdepprodsontheproject'sspefificneeds.forlargerprojects,externalcsSissBetterDuoSmaintoMaintainability andReusability; forsMallerProjectsorsingle-pageApplications,InternaltCsmightBemoresobleable.InternalCsmightBemorese.it.it'sclucialtobalancepopryseceneceenceprodrenceprodrenceNeed

我的CSS必須在較低的情況下嗎? 我的CSS必須在較低的情況下嗎? Jun 19, 2025 am 12:29 AM

否,CSSDOESNOTHAVETOBEINLOWERCASE.CHOMENDENS,使用flowercaseisrecommondendendending:1)一致性和可讀性,2)避免使用促進性技術,3)潛在的Performent FormanceBenefits,以及4)RightCollaboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraborationWithInteams。

CSS案例靈敏度:了解重要的 CSS案例靈敏度:了解重要的 Jun 20, 2025 am 12:09 AM

cssismostlycaseminemintiment,buturlsandfontfamilynamesarecase敏感。1)屬性和valueslikeColor:紅色; prenotcase-sensive.2)urlsmustmustmatchtheserver'server'scase,例如

什么是AutoPrefixer,它如何工作? 什么是AutoPrefixer,它如何工作? Jul 02, 2025 am 01:15 AM

Autoprefixer是一個根據(jù)目標瀏覽器范圍自動為CSS屬性添加廠商前綴的工具。1.它解決了手動維護前綴易出錯的問題;2.通過PostCSS插件形式工作,解析CSS、分析需加前綴的屬性、依配置生成代碼;3.使用步驟包括安裝插件、設置browserslist、在構建流程中啟用;4.注意事項有不手動加前綴、保持配置更新、非所有屬性都加前綴、建議配合預處理器使用。

什么是CSS計數(shù)器? 什么是CSS計數(shù)器? Jun 19, 2025 am 12:34 AM

csscounterscanautomationallymentermentermentections和lists.1)usecounter-ensettoInitializize,反插入式發(fā)芽,andcounter()orcounters()

CSS:何時重要(何時不)? CSS:何時重要(何時不)? Jun 19, 2025 am 12:27 AM

在CSS中,選擇器和屬性名不區(qū)分大小寫,而值、命名顏色、URL和自定義屬性則區(qū)分大小寫。1.選擇器和屬性名不區(qū)分大小寫,例如background-color和Background-Color相同。2.值中的十六進制顏色不區(qū)分大小寫,但命名顏色區(qū)分大小寫,如red有效而Red無效。3.URL區(qū)分大小寫,可能導致文件加載問題。4.自定義屬性(變量)區(qū)分大小寫,使用時需注意大小寫一致。

什么是圓錐級函數(shù)? 什么是圓錐級函數(shù)? Jul 01, 2025 am 01:16 AM

theconic-Gradient()functionIncsscreatesCircularGradientsThatRotateColorStopSaroundAcentralPoint.1.IsidealForPieCharts,ProgressIndicators,colordichers,colorwheels和decorativeBackgrounds.2.itworksbysbysbysbydefindefingincolordefingincolorstopsatspecificains off.

See all articles