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

目錄
CSS animation-fill-mode 屬性的意義是什么?
你能解釋 animation-fill-mode 中的 backwards 值嗎?
當(dāng) animation-fill-mode 屬性設(shè)置為 none 時會發(fā)生什么?
我可以為 animation-fill-mode 屬性使用多個值嗎?
所有瀏覽器都支持 animation-fill-mode 屬性嗎?
首頁 web前端 css教程 了解CSS動畫填充模式屬性

了解CSS動畫填充模式屬性

Feb 25, 2025 am 08:48 AM

Understanding the CSS animation-fill-mode Property

核心要點(diǎn)

  • CSS animation-fill-mode 屬性控制動畫在執(zhí)行前后如何應(yīng)用樣式,它有四個可能的值:none、forwards、backwardsboth。
  • forwards 值確保動畫結(jié)束后,動畫最后一個關(guān)鍵幀中定義的樣式會保留在元素上,而不是恢復(fù)到原始樣式。
  • backwards 值在動畫開始之前的任何延遲期間,將第一個關(guān)鍵幀的樣式應(yīng)用于元素。
  • both 值結(jié)合了 forwardsbackwards 的效果,在動畫開始前應(yīng)用第一個關(guān)鍵幀的樣式,并在動畫結(jié)束后保留最后一個關(guān)鍵幀的樣式。

前端開發(fā)人員幾乎都使用過基于 CSS 關(guān)鍵幀的動畫。一些人甚至可能用此功能創(chuàng)建了一些相當(dāng)復(fù)雜的演示和實(shí)驗(yàn)。

如果您需要對該主題進(jìn)行全面介紹,我在 Smashing Magazine 上 2011 年發(fā)表的文章仍然是一個不錯的選擇。然而,在本文中,我想關(guān)注 CSS 動畫規(guī)范的一個組成部分:animation-fill-mode 屬性。

這是唯一一個不太容易理解的基于動畫的屬性。例如,沒有人會對 animation-nameanimation-duration 等感到困惑……但是,“填充模式”到底是什么意思呢?讓我們簡要地考慮一下,并舉一些例子。

fill-mode 的語法

您可能已經(jīng)知道,基本的關(guān)鍵幀動畫是使用 @keyframes 規(guī)則定義的。但是,除非您將關(guān)鍵幀與動畫名稱關(guān)聯(lián)起來,否則關(guān)鍵幀不會起作用。這是一個簡寫動畫屬性聲明,您可以了解我的意思:

.example {
  animation: myAnim 2s 500ms 2 normal ease-in forwards;
}

當(dāng)然,這同一行簡寫可以擴(kuò)展為:

.example {
  animation-name: myAnim;
  animation-duration: 2s;
  animation-delay: 500ms;
  animation-iteration-count: 2;
  animation-direction: normal;
  animation-timing-function: ease-in;
  animation-fill-mode: forwards;
}

在兩個示例中,animation-fill-mode 屬性都在最后定義,并且在這兩種情況下,值都設(shè)置為“forwards”。我們不必將其定義在最后,但這可能是一個很好的實(shí)踐。

同樣,即使您從未使用過 CSS 動畫,您也可能能夠弄清楚上面聲明中所有內(nèi)容的作用——除了 animation-fill-mode

fill-mode 的規(guī)范定義

那么規(guī)范對這個屬性怎么說呢?

animation-fill-mode 屬性定義了在動畫執(zhí)行時間之外應(yīng)用哪些值。

正如它繼續(xù)解釋的那樣,“執(zhí)行時間之外”的時間具體是指動畫應(yīng)用于元素的時間與元素實(shí)際開始動畫的時間之間的時間?;旧?,使用 fill-mode 值,您可以定義動畫元素在動畫執(zhí)行時間之外但動畫應(yīng)用之后的外觀。聽起來可能令人困惑,但您很快就會明白我的意思。

讓我們通過查看每個可能的值來擴(kuò)展這個基本的定義(這可能仍然有點(diǎn)令人困惑)。

分解值

animation-fill-mode 屬性可以接受四個值之一:noneforwards、backwardsboth。以下是每個值的細(xì)分。

值:none

這是 animation-fill-mode 的初始值或默認(rèn)值。除非您通過 JavaScript 設(shè)置它以將其從其他值更改,或者您正在覆蓋級聯(lián)中的某些內(nèi)容,否則定義 none 值將是多余的。

要了解 none 值的作用,這里有一個 CodePen 演示,其中顯示了一個沒有定義 animation-fill-mode 的動畫(因此,它的值為 none):

[CodePen 演示鏈接 (請?zhí)鎿Q為實(shí)際鏈接)]

您可以看到,在大多數(shù)情況下,none 的填充模式不是您想要的。請記住,fill-mode 定義了元素在動畫執(zhí)行時間之外的外觀。

在這個示例中,球最初是紅色的,然后在同時向右移動和改變大小的同時逐漸變成粉紅色。如果動畫結(jié)束后,球保持較小、粉紅色且偏右,將會更好。這將避免動畫結(jié)束后難看的跳回起始狀態(tài)。

值:forwards

讓我們將球的動畫更改為 fill-mode 值為“forwards”:

[CodePen 演示鏈接 (請?zhí)鎿Q為實(shí)際鏈接)]

現(xiàn)在您可以看到使用 animation-fill-mode 的好處以及為什么 forwards 值比其他任何值都使用得更多。當(dāng)我們使用此值定義它時,我們告訴瀏覽器我們希望動畫元素保留其最終的樣式集,如最后一個關(guān)鍵幀中所定義的那樣。這樣,我們就不會在動畫結(jié)束后跳回元素開始動畫之前的初始狀態(tài)(我在演示中添加的“重置”按鈕可以為我們做到這一點(diǎn))。

值:backwards

讓我們將值更改為 backwards——現(xiàn)在會發(fā)生什么?

[CodePen 演示鏈接 (請?zhí)鎿Q為實(shí)際鏈接)]

請注意,此演示中的行為與第一個具有 animation-fill-mode 值為“none”的演示完全相同。為什么會這樣?

forwards 相反,backwards 值在動畫結(jié)束后會為元素提供它在動畫開始之前的樣式。當(dāng)我們看到規(guī)范對 backwards 值的說明時,這更有意義:

animation-delay 定義的期間,動畫將應(yīng)用在將啟動動畫第一次迭代的關(guān)鍵幀中定義的屬性值。這些是 from 關(guān)鍵幀的值……或 to 關(guān)鍵幀的值。

為了演示這一點(diǎn),我對演示進(jìn)行了兩處修改:

  • 添加了一個 from 關(guān)鍵幀,為球使用不同的顏色。
  • 使用 animation-delay 屬性添加了延遲。

它在這里:

[CodePen 演示鏈接 (請?zhí)鎿Q為實(shí)際鏈接)]

現(xiàn)在您可以看到,一旦您按下“啟動動畫”按鈕,球就會變成藍(lán)色。這是因?yàn)榇嬖诿黠@的延遲。從技術(shù)上講,每個動畫都有一個默認(rèn)延遲,但延遲為 0s,因此在這種情況下您不會真正看到 backwards 的值,如果您初始關(guān)鍵幀中的樣式與動畫開始之前的樣式相同,您當(dāng)然也不會看到它。如果使用相同的樣式和相同的延遲,刪除 backwards 值會導(dǎo)致球在動畫開始之前保持紅色。

說實(shí)話,我并沒有真正看到 backwards 值的很多實(shí)際用途。很難想象太多情況下動畫的第一個關(guān)鍵幀中的樣式與元素動畫前的靜態(tài)狀態(tài)不同。但如果您有任何想法,我很樂意聽取一些用例。

值:both

我們將要查看的最后一個值是 both 值。此值告訴瀏覽器應(yīng)用 forwardsbackwards 的效果。

讓我們在演示中保留相同的樣式,看看當(dāng)我們賦予它 both 值時會發(fā)生什么:

[CodePen 演示鏈接 (請?zhí)鎿Q為實(shí)際鏈接)]

不是火箭科學(xué)。如您所見,在初始延遲期間,將應(yīng)用初始關(guān)鍵幀樣式,然后動畫結(jié)束并凍結(jié)最后一個關(guān)鍵幀中的樣式(如前所述,這通常是您想要的)。同樣,如果不是因?yàn)檠舆t和在第一個關(guān)鍵幀中定義的替代顏色,此值與僅使用 forwards 不會有太大區(qū)別。

一些注意事項(xiàng)和技巧

基于以上內(nèi)容以及規(guī)范中的一些細(xì)節(jié),以下是一些需要注意的事項(xiàng):

  • 雖然我已經(jīng)在某種程度上最小化了 backwardsboth 值的重要性,但在由腳本或用戶輸入控制的復(fù)雜動畫中,這些值可能派上用場。用例將比比皆是(想想:游戲),但只有通過實(shí)驗(yàn)和創(chuàng)新才能實(shí)現(xiàn)。
  • animation-direction 屬性設(shè)置為 reverse 的情況下,forwardsbackwards 值的效果會反轉(zhuǎn)。如果您擺弄演示,您將看到它是如何工作的。
  • 雖然我說 animation-fill-mode 只接受四個值,但請記住,還可以使用 CSS 范圍屬性值。
  • 在早期版本的規(guī)范中,animation-fill-mode 不是簡寫動畫屬性的一部分,但似乎所有支持關(guān)鍵幀的瀏覽器都可以將其用于簡寫。
  • 使用動畫簡寫并為動畫選擇自定義名稱時,不要使用與有效 fill-mode 值匹配的名稱(例如“reverse”或“forwards”),否則瀏覽器將解析簡寫聲明,假設(shè)該名稱實(shí)際上是一個 fill-mode 值。

結(jié)論

我希望這篇總結(jié)能幫助您更好地理解此屬性。一些研究確實(shí)幫助我更好地理解了它。如果您對 animation-fill-mode 做了一些獨(dú)特的事情,或者對不同值有任何獨(dú)特的用例,或者對本文有任何更正,請?jiān)谟懻撝懈嬖V我們。

關(guān)于 CSS 動畫填充模式屬性的常見問題解答

CSS animation-fill-mode 屬性的意義是什么?

CSS animation-fill-mode 屬性是 CSS 動畫的關(guān)鍵方面。它定義了動畫如何在執(zhí)行前后應(yīng)用樣式到其目標(biāo)。此屬性有助于控制動畫過程中元素的中間狀態(tài)。它可以取四個值:noneforwards、backwardsboth。每個值都決定了動畫在不同階段如何影響元素,從而為開發(fā)人員提供了對動畫的更大控制。

animation-fill-mode 中的 forwards 值是如何工作的?

CSS animation-fill-mode 屬性中的 forwards 值確保元素保留動畫過程中遇到的最后一個關(guān)鍵幀設(shè)置的計(jì)算值。這意味著動畫結(jié)束后,最后一個關(guān)鍵幀中定義的樣式將保留在元素上,而不是恢復(fù)到原始樣式。

你能解釋 animation-fill-mode 中的 backwards 值嗎?

CSS animation-fill-mode 屬性中的 backwards 值在動畫開始之前的期間將第一個關(guān)鍵幀的樣式應(yīng)用于元素。這意味著如果動畫開始前有延遲,則元素將在該延遲期間采用第一個關(guān)鍵幀中定義的樣式。

animation-fill-mode 中的 both 值是什么意思?

CSS animation-fill-mode 屬性中的 both 值結(jié)合了 forwardsbackwards 的效果。這意味著在動畫開始前應(yīng)用第一個關(guān)鍵幀的樣式,并在動畫結(jié)束后保留最后一個關(guān)鍵幀的樣式。

當(dāng) animation-fill-mode 屬性設(shè)置為 none 時會發(fā)生什么?

當(dāng) CSS animation-fill-mode 屬性設(shè)置為 none 時,動畫在開始之前或結(jié)束之后不會將任何樣式應(yīng)用于元素。元素僅在動畫積極運(yùn)行期間受動畫影響。

我可以為 animation-fill-mode 屬性使用多個值嗎?

不可以,CSS animation-fill-mode 屬性一次只能取一個值。您可以根據(jù)動畫的具體要求從 none、forwards、backwardsboth 中選擇。

所有瀏覽器都支持 animation-fill-mode 屬性嗎?

CSS animation-fill-mode 屬性在所有現(xiàn)代瀏覽器中都得到廣泛支持,包括 Chrome、Firefox、Safari 和 Edge。但是,它在 Internet Explorer 中不受支持。

animation-fill-mode 屬性如何與 animation-delay 屬性交互?

CSS animation-fill-mode 屬性與 animation-delay 屬性一起工作。如果 animation-fill-mode 設(shè)置為 backwardsboth,并且存在 animation-delay,則將在延遲期間應(yīng)用第一個關(guān)鍵幀的樣式。

animation-fill-mode 屬性可以與具有百分比值的關(guān)鍵幀一起使用嗎?

可以,CSS animation-fill-mode 屬性可以與具有百分比值的關(guān)鍵幀一起使用。forwardsbackwards 值將分別應(yīng)用最接近 0% 和 100% 的關(guān)鍵幀的樣式。

animation-fill-mode 屬性的默認(rèn)值是什么?

CSS animation-fill-mode 屬性的默認(rèn)值為 none。這意味著默認(rèn)情況下,動畫在開始之前或結(jié)束之后不會將任何樣式應(yīng)用于元素。

請注意,我已將 CodePen 鏈接替換為占位符。你需要提供實(shí)際的 CodePen 演示鏈接才能使文章完整。

以上是了解CSS動畫填充模式屬性的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

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

外部與內(nèi)部CSS:最好的方法是什么? 外部與內(nèi)部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)避免使用促進(jìn)性技術(shù),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ù)目標(biāo)瀏覽器范圍自動為CSS屬性添加廠商前綴的工具。1.它解決了手動維護(hù)前綴易出錯的問題;2.通過PostCSS插件形式工作,解析CSS、分析需加前綴的屬性、依配置生成代碼;3.使用步驟包括安裝插件、設(shè)置browserslist、在構(gòu)建流程中啟用;4.注意事項(xiàng)有不手動加前綴、保持配置更新、非所有屬性都加前綴、建議配合預(yù)處理器使用。

什么是CSS計(jì)數(shù)器? 什么是CSS計(jì)數(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.值中的十六進(jìn)制顏色不區(qū)分大小寫,但命名顏色區(qū)分大小寫,如red有效而Red無效。3.URL區(qū)分大小寫,可能導(dǎo)致文件加載問題。4.自定義屬性(變量)區(qū)分大小寫,使用時需注意大小寫一致。

CSS中的情況敏感性:選擇器,屬性和值所解釋的 CSS中的情況敏感性:選擇器,屬性和值所解釋的 Jun 19, 2025 am 12:38 AM

cssselectorsand and propertynamesarecase-insimentimentiment.1)selectorSlike like'div'div'div'div'and'and'and'And'Andiv'areequivalent.2)propertioessuchas'backusuchas'backusuchas'backusuchas'backusuchas'backer'back-and'background and backorgook crolor'backorground-artreateateDthesementhesame.3)

See all articles