編寫自己的程式碼庫:CSS3 常用動畫的實現

發表於2017-08-16

1.前言

在月初的時候,發了CSS3熱身實戰–過渡與動畫(實現炫酷下拉,手風琴,無縫滾動)。js的程式碼庫也發過兩次,兩篇文章。之前也寫了css3的熱身實戰,既然熱身完了,是時候開始封裝css3的程式碼庫了,相比起js的程式碼庫,css3的程式碼庫的邏輯性就更加簡單了!可以說只要打上註釋和一張效果圖就可以讓大家明白了其中的原理了!
我寫程式碼庫的時候,動畫效果主要是參考了三個開源專案,nechover.cssanimate.css這三個專案的質量非常的高,建議大家去了解。
原始碼已經放到github上面了,大家可以去看,也歡迎大家star一下!ec-css

我指出這三個庫並不是叫大家去拿別人的程式碼,稍微修改一下,或者直接拷貝到自己的專案上,然後就說是自己的專案。我是讓大家去看別人的程式碼,學習別人的實現方式或者動畫效果,然後再用自己的方式實現,當然如果把別人的專案,增刪改查到面目全非的地步,這個我個人覺得可以說是自己的專案了!強調一點,不要直接複製別人的程式碼,放到自己的專案上,然後說是自己開發的,這是不尊重別人的成果,對自己的技術水平提升的幫助也較少。我寫文章,雖然也會給出程式碼,但是我的目的是提供大家參考的,希望給讓大家學習到知識或者發散思維,寫出更好的作品。之前也說過,我寫文章的目的是授人以漁,不是授人以魚

宣告

1.下面將會看到很多個類似bVSnzd這樣的矩形,都是span標籤,樣式都是給出的css

2.關於class命名方式,l代表left,r代表right,t代表top,b代表bottom,c代表center,m代表middle。切記

文章比較長,但是說得就是兩點,大家看得也應該會很快
1.寫出一些hover動畫和預設動畫的執行效果,並且貼出程式碼
2.發現幾個動畫組合,和加上無限動畫,反向動畫,會有不一樣的效果,並且繼續研究,看下能不能研究出不一樣的東西!

2.hover動畫

說了那麼多,是時候進入正文了,

首先是hover動畫,關於這個概念,我解釋下,就是滑鼠移上去觸發的動畫,就是觸發了滑鼠的hover事件時能看到的動畫!下面,按照型別,一個一個的寫!

2-1.簡單動畫

2-1-1大小變化

編寫自己的程式碼庫:CSS3 常用動畫的實現

html

css

2-1-2形狀變化

bVSnHb

html

css

2-1-3旋轉角度變化

bVSnIG

html

css

2-1-4位移變化

bVSo0y

html

css

2-1-5邊框變化

bVSo2M

html

css

2-1-6陰影變化

bVSo3O

(gif圖看得效果太難看了,大家可以去github下載看)

html

css

2-1-7透明度變化

bVSo45

html

css

2-1-8圓角變化

bVSo5k

html

css

2-2.顏色動畫效果

這部分的動畫主要是利用:before和:after進行實現的,所以,大家如果使用的時候,切記:before和:after沒有被佔用,否則會顯示不正常

2-2-1.顏色塊變化

bVSo6h

因為這塊內容很像,我就一大塊一起說,大家看程式碼的時候要留神注意。看程式碼看不明白,直接在github下載,然後執行檔案,邊除錯邊看效果!這樣大家就很容易明白了!

html

css

2-2-2.顏色上下劃線變化

這裡也是一大塊一起說,看程式碼可能會更亂,所以大家看程式碼的時候要更加留神注意。看程式碼看不明白,直接在github下載,然後執行檔案,邊除錯邊看效果!這樣大家就很容易明白了!

bVSo9M

html

css

2-2-3箭頭動畫

bVSrrY

html

css

2-3較複雜動畫

2-1和2-2的內容,都是利用過渡實現效果,那麼這一塊就是利用動畫來實現效果!區別就是hover的寫法是增加一個動畫,動畫的封裝,難度就在於創意。

2-3-1閃爍效果

bVSro8

html

css

2-3-2鬧鐘振鈴效果

bVSroW

html

css

2-3-3搖擺效果

bVSrpo

html

css

2-3-4搖晃效果

bVSrpw

html

css

2-3-5抖動效果

bVSrp1

html

css

2-3-6彈跳效果

bVSrqm

html

css

3.預設動畫

受限於篇幅的長度,我也不想分開兩篇文章寫。關於這個預設動畫,我就簡單的說一下,寫一下,我直接給一個大概的操作演示,和完整的程式碼!反正寫法這個也是比較單一,無非就是改一個類名而已。難的是動畫的一些編寫,這個需要創意,大家可以上網參考。

bVStn8

(不知道為什麼,gif截大圖放不上來,就放了張小的,大家結果下面的jpg一起看把,就是通過下面的按鈕,展示動畫,大家也可以在github下面下載程式碼看下)

bVStoy

(完整程式碼比較多,這裡貼出,但是建議大家稍微看一下,過一下就好,因為這個只看程式碼是會懵逼的,要在瀏覽器開啟檔案,一看除錯一邊看,這樣會很簡單,很容易的明白)

html程式碼

css

4.未知探索

好了,說完了hover動畫和預設動畫,我開發的時候,發現了這樣一些好玩的東西,我也準備繼續研究,也建議大家玩下,說不定哪天做出了了不起的東西!如下面的栗子!

下面說的動畫,不分hover動畫和預設動畫,大家注意

4-1.無限執行動畫

一個普通的動畫,加上無限執行,一般會出現很友好的效果,

bVStuB

但是有些時候的效果差強人意

bVStr3

4-2.反向動畫

在4-1的基礎上,加上方向執行動畫,也會有不一樣的效果

沒加反向動畫效果
bVStt2

加上反向動畫效果

bVStt3

4-3.組合效果

陰影效果和其它效果的組合,(gif看不出陰影效果,哎。。)
bVStvV

上面的幾個的栗子
css程式碼不變,區別是html程式碼,多加了一些類名
bVStxe

上面幾個是我在開發時候發現的栗子,這個我會繼續研究,也希望大家能研究,研究出什麼好玩的效果,或者動畫寫法,歡迎分享!

5.雞肋選擇

在寫css3程式碼庫的時候,我也發現封裝css3的一個雞肋情況。

1.css3的效果太過於靈活,多樣,封裝非常容易出現眾口難調的情況,以及每個專案的效果可能出現效果差不多,但就是不一樣,這樣就是說封裝的庫並不適合用在專案上。

2.還有一點在於,css3效果基本上每一個專案都是有用到,並且是常用,但是平常專案要用到的css3效果最多也就10個,而且也不難,手寫很快可以實現,根本沒必要去引一個外掛或者庫。

但是最後我還是堅持寫下去了,原因如下

1.如果專案開發,對動畫效果的要求基本不會達到非常的嚴格的地步,我完全可以多引一個檔案,增加我的開發效率,壓縮過後的檔案可能只有10K左右,可以接受。

2.就算在專案用不上,我也可以當作是練手,學習的作用。如果以後專案需要動畫效果,即使動畫效果跟我封裝的不一樣,我也可以看著來進行修改。

3.就算開發的時候沒使用上這個庫,萬一有些動畫,我寫過,但是忘了怎麼寫,也可以回頭看怎麼實現!

4.如果開發的時候,不知道放什麼效果好,這個庫,也能起到一定的參考作用!

5.現在多寫幾個,說不定起到一個發散思維的作用,寫了這些效果,想到了另一些效果怎麼寫,或者想到還有什麼效果可以寫,這個也是非常好的一個結果和收穫!

6.小結

好了,css3的程式碼庫封裝到這裡就差不多了,如果你能看完全篇,你已經是勇士了,證明你很有耐心,看完馬上掌握,這個對於大家來說問題不大,畢竟不是什麼邏輯性強的程式碼。我想要的效果雖然都實現了,不過以後肯定也是要修改完善的(至少看原始碼的話,我自己看得都有點亂,但是一時之間又不知道該如果整理,就先放上去了)。話說回來,通過以上的案例,希望能幫到大家,最理想就是能起到發散思維的作用,就是通過我的案例,能讓大家知道其它的一些動畫怎麼做,或者想到有什麼好看動畫效果。web前端這一行,最重要的就是多練,大家除了看別人的專案,部落格之外,一定要多練,多寫,這樣進步才會更快,知識才會記得更牢。
最後,如果大家覺得我哪裡寫得不好或者寫錯了,歡迎指出。有什麼好的想法,隨時給您寶貴的建議我!專案我也放到github上面了!有需要的可以去看下,star下ec-css

相關文章