亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
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

核心要點

  • 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ù)雜的演示和實驗。

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

這是唯一一個不太容易理解的基于動畫的屬性。例如,沒有人會對 animation-name、animation-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)然,這同一行簡寫可以擴展為:

.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”。我們不必將其定義在最后,但這可能是一個很好的實踐。

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

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

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

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

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

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

分解值

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ù)情況下,none 的填充模式不是您想要的。請記住,fill-mode 定義了元素在動畫執(zhí)行時間之外的外觀。

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

值:forwards

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

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

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

值:backwards

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

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

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

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

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

為了演示這一點,我對演示進行了兩處修改:

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

它在這里:

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

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

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

值:both

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

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

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

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

一些注意事項和技巧

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

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

結(jié)論

我希望這篇總結(jié)能幫助您更好地理解此屬性。一些研究確實幫助我更好地理解了它。如果您對 animation-fill-mode 做了一些獨特的事情,或者對不同值有任何獨特的用例,或者對本文有任何更正,請在討論中告訴我們。

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

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

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

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

CSS animation-fill-mode 屬性中的 forwards 值確保元素保留動畫過程中遇到的最后一個關(guān)鍵幀設(shè)置的計算值。這意味著動畫結(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)用于元素。元素僅在動畫積極運行期間受動畫影響。

我可以為 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 鏈接替換為占位符。你需要提供實際的 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

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(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教程,用于創(chuàng)建加載旋轉(zhuǎn)器和動畫 CSS教程,用于創(chuàng)建加載旋轉(zhuǎn)器和動畫 Jul 07, 2025 am 12:07 AM

創(chuàng)建CSS加載旋轉(zhuǎn)器的方法有三種:1.使用邊框的基本旋轉(zhuǎn)器,通過HTML和CSS實現(xiàn)簡單動畫;2.使用多個點的自定義旋轉(zhuǎn)器,通過不同延遲時間實現(xiàn)跳動效果;3.在按鈕中添加旋轉(zhuǎn)器,通過JavaScript切換類來顯示加載狀態(tài)。每種方法都強調(diào)了設(shè)計細(xì)節(jié)如顏色、大小、可訪問性和性能優(yōu)化的重要性,以提升用戶體驗。

解決CSS瀏覽器兼容性問題和前綴 解決CSS瀏覽器兼容性問題和前綴 Jul 07, 2025 am 01:44 AM

處理CSS瀏覽器兼容性和前綴問題需理解瀏覽器支持差異并合理使用廠商前綴。1.了解常見問題如Flexbox、Grid支持不一,position:sticky失效,動畫表現(xiàn)不同;2.查閱CanIuse確認(rèn)特性支持情況;3.正確使用-webkit-、-moz-、-ms-、-o-等廠商前綴;4.推薦使用Autoprefixer自動添加前綴;5.安裝PostCSS并配置browserslist指定目標(biāo)瀏覽器;6.構(gòu)建時自動處理兼容性;7.老項目可用Modernizr檢測特性;8.不必追求所有瀏覽器一致,確

使用CSS剪輯路徑創(chuàng)建自定義形狀 使用CSS剪輯路徑創(chuàng)建自定義形狀 Jul 09, 2025 am 01:29 AM

使用CSS的clip-path屬性可以裁剪元素為自定義形狀,如三角形、圓形缺口、多邊形等,無需依賴圖片或SVG。其優(yōu)勢包括:1.支持circle、ellipse、polygon等多種基本形狀;2.可響應(yīng)式調(diào)整,適配移動端;3.易于動畫化,可結(jié)合hover或JavaScript實現(xiàn)動態(tài)效果;4.不影響布局流,僅裁剪顯示區(qū)域。常見用法如圓形裁剪clip-path:circle(50pxatcenter)和三角形裁剪clip-path:polygon(50%0%,1000%,00%)。注意

顯示:內(nèi)聯(lián),顯示:塊和顯示:內(nèi)聯(lián)塊之間有什么區(qū)別? 顯示:內(nèi)聯(lián),顯示:塊和顯示:內(nèi)聯(lián)塊之間有什么區(qū)別? Jul 11, 2025 am 03:25 AM

Themaindifferencesbetweendisplay:inline,block,andinline-blockinHTML/CSSarelayoutbehavior,spaceusage,andstylingcontrol.1.Inlineelementsflowwithtext,don’tstartonnewlines,ignorewidth/height,andonlyapplyhorizo??ntalpadding/margins—idealforinlinetextstyling

造型與CSS不同訪問的鏈接 造型與CSS不同訪問的鏈接 Jul 11, 2025 am 03:26 AM

設(shè)置訪問過鏈接的樣式能提升用戶體驗,尤其在內(nèi)容密集型網(wǎng)站中幫助用戶更好導(dǎo)航。1.使用CSS的:visited偽類可定義已訪問鏈接樣式,如顏色變化;2.注意瀏覽器出于隱私限制僅允許修改部分屬性;3.顏色選擇應(yīng)與整體風(fēng)格協(xié)調(diào),避免突兀;4.移動端可能不顯示該效果,建議結(jié)合其他視覺提示如icon輔助標(biāo)識。

CSS繪畫API是什么? CSS繪畫API是什么? Jul 04, 2025 am 02:16 AM

thecsspaintingapienablesdemimageGenerationinCsssingJavascript.1.developersCreateApaintWorkletClassWithaPaint()method.2.theyregisteritviaregisterpaint()。3.thecustompAntFunctionSthenusitySthenusedisthenusedisthenusedIncerspropertieslikeBacknockforg-image-image.thisallows.thisallowsforderforderynamecvis

如何使用CSS創(chuàng)建響應(yīng)式圖像? 如何使用CSS創(chuàng)建響應(yīng)式圖像? Jul 15, 2025 am 01:10 AM

要使用CSS創(chuàng)建響應(yīng)式圖片,主要可通過以下方法實現(xiàn):1.使用max-width:100%和height:auto讓圖片在保持比例的同時自適應(yīng)容器寬度;2.結(jié)合HTML的srcset和sizes屬性智能加載適配不同屏幕的圖片源;3.利用object-fit和object-position控制圖片裁剪與焦點展示。這些方法共同確保圖片在不同設(shè)備上清晰、美觀地呈現(xiàn)。

什么是常見的CSS瀏覽器不一致? 什么是常見的CSS瀏覽器不一致? Jul 26, 2025 am 07:04 AM

不同瀏覽器對CSS解析存在差異,導(dǎo)致顯示效果不一致,主要包括默認(rèn)樣式差異、盒模型計算方式、Flexbox和Grid布局支持程度及某些CSS屬性行為不一致。1.默認(rèn)樣式處理不一致,解決方法是使用CSSReset或Normalize.css統(tǒng)一初始樣式;2.舊版IE的盒模型計算方式不同,建議統(tǒng)一使用box-sizing:border-box;3.Flexbox和Grid在邊緣情況或舊版本中表現(xiàn)有差異,應(yīng)多測試并使用Autoprefixer;4.某些CSS屬性行為不一致,需查閱CanIuse并提供降級

See all articles