CSS3 動畫效果總結

2021-08-27 07:42:55 字數 3061 閱讀 3644

css3動畫的屬性主要分為三類:transform、transition以及animation。

transform

rotate

設定元素順時針旋轉的角度,用法是:

transform: rotate(x);

引數x必須是以deg結尾的角度數或0,可為負數表示反向。

scale

設定元素放大或縮小的倍數,用法包括:

transform: scale(a); 元素x和y方向均縮放a倍

transform: scale(a, b); 元素x方向縮放a倍,y方向縮放b倍

transform: scalex(a); 元素x方向縮放a倍,y方向不變

transform: scaley(b); 元素y方向縮放b倍,x方向不變

translate

設定元素的位移,用法為:

transform: translate(a, b); 元素x方向位移a,y方向位移b

transform: translatex(a); 元素x方向位移a,y方向不變

transform: translatey(b); 元素y方向位移b,x方向不變

skew

設定元素傾斜的角度,用法包括:

transform: skew(a, b); 元素x方向逆時針傾斜角度a,y方向順時針傾斜角度b

transform: skewx(a); 元素x方向逆時針傾斜角度a,y方向不變

transform: skewy(b); 元素y方向順時針傾斜角度b,想方向不變

以上的引數均必須是以deg結尾的角度數或0,可為負數表示反向。

matrix

設定元素的變形矩陣,因為矩陣變形過於複雜,暫略。

origin

設定元素的懸掛點,用法包括:

transform-origin: a b; 元素的懸掛點為(a, b)

元素的懸掛點即為它旋轉和傾斜時的中心點。取值中的a、b可以是長度值、以%結尾的百分比或者left、top、right、bottom四個值。

transition

transition-property

指定transition效果作用的css屬性,其值是css屬性名。

transition-duration

動畫效果持續的時間,其值為以s結尾的秒數。

transition-timing-function

指定元素狀態的變化速率函式,其取值基於貝賽爾曲線函式,詳情如下所示:

transition-delay

動畫效果推遲開始執行的時間,其值為以s結尾的秒數。

css3動畫的生命週期如下圖所示,從中可以清楚的看出duration和delay之間的關係:

animation

css3中真正的動畫屬性是animation,而前面的transform和transition都只是對dom元素的變形或者是狀態的過渡。實際上,css3所支援的動畫效果只是填充動畫,也就是說先設定整個動畫生命週期中的幾個關鍵狀態(key frame,關鍵幀),然後動畫將自行計算並模擬關鍵幀之間的過渡。那麼在設定animation的屬性之前就必須先設定好關鍵幀了。

關鍵幀@keyframes的語法結構如下:

@keyframesname

b% ...

}name表示動畫的名字;a%、b%表示以百分號結尾的百分數,用於設定該關鍵幀在動畫生命週期中的位置;百分數後面的 中則需要寫成該關鍵幀狀態下css屬性的值。另外,如果同乙個百分數值在@keyframes中出現多次,那麼後出現的將覆蓋先出現的;並且關鍵幀在@keyframes中時無序的。

設定完關鍵幀後就可以繼續設定animation了。

animation-name

指定選用的動畫的名字,即keyframes中的name。

animation-duration

同transition-duration。

animation-timing-function

同transition-timing-function。

animation-delay

同transition-delay。

animation-iteration-count

設定動畫執行的次數,其值可以是數字也可以是infinite(迴圈執行)。

animation-direction

字首因為css3還沒有正式發布,所以各種瀏覽器對它的支援也不盡相同。所以在設定css3屬性(包括@開頭的新屬性)的時候通常需要對其新增瀏覽器標識的字首,如-webkit- 表示webkit核心的瀏覽器chrome和safari,-moz- 表示fire fox,-o- 表示opera。無視ie吧,在ie上的實現通常還是要用到濾鏡,而不是css3。

例項下面的**模擬了上述大部分的css3動畫屬性,由於只使用了–webkit- 字首,所以只能在chrome或safari下正常執行。

html**:

html**

rotate

scale

translate

skew

origin

single property

whole property

change & resume

animation

css**:

animation.css

css**

div

.rotate

.rotate:hover

.scale

.scale:hover

.translate

.translate:hover

.skew

.skew:hover

.origin

.origin:hover

.single

.single:hover

.whole

.whole:hover

.resume

.resume:hover

.animation:hover

@-webkit-keyframes anim

50%

100%

}

Css3 動畫效果

相關作品 最近看了比較多的動畫效果,想做些自己感興趣的作品,遇到以下問題,記錄下來 1.簡單的動畫主要用transition和transform 2.滑鼠放上去產生的效果,before和after顯示寫法如下 item style3 hover before 3.關於3d動畫效果,要顯示出來,需要新...

css3動畫效果

css3中的transform中有旋轉,放縮,傾斜,平移的功能,分別對應的屬性是 rotate,scale,skew,translate 旋 rotate css view plaincopy webkit transform rotate 10deg moz transform rotate 10...

css3動畫效果

css3中的transform中有旋轉,放縮,傾斜,平移的功能,分別對應的屬性是 rotate,scale,skew,translate 旋 rotate css view plaincopy webkit transform rotate 10deg moz transform rotate 10...