css屬性之幀動畫屬性(animation)

2021-07-27 15:42:40 字數 2957 閱讀 1051

在介紹animation屬性之前,先來認識一下@keyframes規則。

通過@keyframes規則可以建立動畫,建立動畫是逐步改變乙個css樣式到另乙個css樣式來實現的,css樣式可以設定多個來實現動畫過程,指定動畫變化時用%,或者用關鍵字從"from"到"to",這是和"0%"開始到"100%"結束相同效果的。

為了獲得瀏覽器的穩定支援,建議使用%來實現。

書寫:@keyframes my_animation_name 50% 100% }

或者 @keyframes my_animation_name to }

舉例乙個總體效果:

效果如下:

可以看出,所謂幀動畫,就是通過建立幀改變css樣式的實現的。

animation屬性設定動畫的效果,它是乙個復合屬性。

書寫:animation: animation-name||animation-duration||animation-timing-function||animation-delay||animation-iteration-count||animation-direction||animation-state;

這三個屬性與過渡(transition)的三個屬性是相似的。

-name,表示定義的幀動畫名稱,這裡的name就是"my_animation_name"。

@keyframes my_animation_name {}
-duratin,表示動畫完成所需的時間。

-timing-function,表示動畫的過渡型別。linear表示勻速;ease表示慢速開始,中間加速,慢速結束;ease-in表示慢速開始;ease-out表示慢速結束;ease-in-out表示慢速開始和結束;

animation-delay表示動畫延遲多少時間後開始執行。

animation-iteration-count表示動畫執行的次數。

書寫:animation-iteration-count: n||infinite;    有限的迴圈次數或者是無限迴圈。

屬性值:

animation-direction: normal;
效果如下:

animation-direction: reverse;
效果如下:

animation-play-state指定動畫是否執行或暫停

屬性值:

屬性值:

先以"from""to"關鍵字實現的動畫為例。

效果如下:

我們可以看出,動畫是滑動的,並不是我們想要的效果,這是為什麼呢?

原來animation是以ease為預設方式過渡的,它會在每個關鍵幀之間插入補間動畫,所以是連貫的。

解決思路就是:

@keyframes myanimation 

9.2%, 17.2%

...}

step1:動作之間停留8幀,0%設定動作一,動作一結束在8%

step2:動作之間過渡1.2幀,9.2%設定動作二,動作二結束在17.2%

以下以"0%"到"100%"為例

效果如下:

以上只是animation屬性的乙個簡單應用,它還有其它更為強大的功能用處,以後再介紹。

詳解CSS動畫屬性關鍵幀keyframes全解析

大概有多久沒有更新專欄文章了。半年?下半年忙到起飛,或者毫不誇張的說是發射?僅有的一點個人時間,上半年貢獻給了python,現在差不多已忘掉了七七八八 一首 涼涼 送給自己 下半年貢獻給了j ascript,終於鼓起勇氣系統的開始學習js了 換台,梁靜茹 勇氣 走起 本來想一直等等等,等到webap...

幀動畫,補間動畫,和屬性動畫

幀動畫 frameanimation 多張快速切換,形成動畫效果 幀動畫使用xml定義.建立乙個folder在res下,然後定義乙個xml檔案,根節點是animation list.將素材複製到drawable hdpi資料夾下作為資源id.android oneshot true drawable...

Frame幀動畫以及Animator屬性動畫的詳解

動畫的應用幾乎隨處可見,可見其重要性 下面是幀動畫以及屬性動畫的一些簡單介紹 初始化幀動畫 管理各個幀影象的類 animationdrawable new animationdrawable 新增幀 新增影象 for int i 1 i 11 i animationdrawable.setonesh...