設計CSS動畫

2021-09-29 09:37:22 字數 4200 閱讀 7331

簡單基礎概念如下:

1、轉換

1、什麼是轉換

改變元素在頁面中的大小,位置,角度和形狀的一種方式

2、轉換分類

1、2d轉換

使元素在x軸和y軸上發生變化效果

2、3d轉換

在2d轉換基礎上,增加 z軸的變化效果

3、轉換屬性

屬性:transform 取值:

1、none

預設值,不進行任何轉換

2、轉換函式

表示乙個或者多個轉換函式,如果是多個函式的話,中間以空格分開

4、轉換原點

屬性:transform-origin

預設情況下,原點是在整個元素的中心位置處

取值:數值/百分比/關鍵字

兩個值:表示 x軸 和 y軸的位置

三個值:表示 x軸 ,y軸 ,z軸的位置

1、2d位移

1、屬性 和 函式

屬性:transform

函式:translate(x) :元素在x軸上的位移距離,取值為正,向右移動,取值為負,向左移動

translate(x,y) :

x表示x軸位移距離

y表示y軸位移距離,取值為正,向下移動,取值為負,向上移動

translatex(x) :只改變元素在x軸上的位置

translatey(y) :只改變元素在y軸上的位置

取值:1、數值

2、百分比

2、2d縮放

1、作用

改變元素在頁面中的大小

2、屬性和函式

屬性:transform

函式:scale(value),如果只給乙個值,那麼x軸和y軸將等比縮放

scale(x,y):改變 x軸和y軸的縮放比例

scalex(x):只改變x軸的縮放比例

scaley(y):只改變y軸的縮放比例

取值:預設值 為1

縮小:0~1 之間的數值

放大:大於1的數值

3、2d旋轉

1、作用

改變元素在頁面中的角度

2、屬性 和 函式

屬性:transform

函式:rotate(ndeg)

n取值為正,則順時針旋轉

n取值為負,則逆時針旋轉

3、注意

1、轉換時,座標軸會一起進行轉換

2、轉換原點可以影響轉換效果

4、2d傾斜

1、作用

改變元素在頁面上的形狀

2、屬性 和 函式

屬性:transform

函式:skew(xdeg) : x軸傾斜指定角度

實際上時改變 y軸的傾斜角度

取值為正:逆時針

取值為負:順時針

skewx(xdeg) : 效果同上

skewy(ydeg) : y軸傾斜指定角度

實際上是改變 x軸的傾斜角度

取值為正:順時針

取值為負:逆時針

1、3d轉換

增加 z軸 轉換效果

2、屬性

屬性:perspective

作用:模擬 人眼睛到 3d投射元素的距離

注意:該屬性 需要加在 3d轉換元素的父元素上

相容性:

火狐:-moz-perspective:

chrome,safari:-webkit-perspective

opera:-o-perspective

3、3d旋轉

允許元素在 x軸,y軸,z軸上進行旋轉操作

屬性 和 函式

屬性:transform

函式:rotatex(xdeg):以x軸為中心軸進行元素的旋轉

rotatey(ydeg)

rotatez(zdeg)

rotate3d(x,y,z,ndeg)

x,y,z,如果取值為 0的話,說明該軸不參與旋轉

x,y,z,如果取值為 1的話,說明該軸是參與旋轉的

rotate3d(0,0,1,45deg)-- rotatez(45deg)

rotate3d(1,1,0,45deg)

4、3d位移1、作用

改變元素在z軸上的位置

2、屬性 和 函式

屬性:transform

函式:translatez();

translate3d(x,y,z)

3、屬性 : transform-style

作用:規範當前元素的子元素如何去排列3d位置

取值:

1、flat

預設值,不保留子元素的3d位置

2、preserve-3d

保留子元素3d位置

1、什麼是過渡

使得css的屬性值在一段時間內平滑過渡

2、過渡的 4個要素(屬性)

1、指定過渡屬性

屬性:transition-property

作用:規定應用過渡效果的css屬性名稱

取值:1、none

2、all

3、property-name : 具體使用過渡效果的屬性名稱

可以設定過渡的屬性:

1、顏色屬性

2、取值為數值的屬性

3、轉換屬性

transform

4、漸變屬性

5、visibility 屬性

6、陰影屬性

例子:

div
2、指定過渡時間

屬性:transition-duration

取值:以秒(s) 或 毫秒(ms) 作為單位的

預設值為0,即沒有過渡效果

例子:

div
3、指定速度時間曲線函式

屬性:transition-timing-function

取值:1、ease : 預設值,慢速開始,快速變快,慢速結束

2、linear : 勻速

3、ease-in : 慢速開始,加速結束

4、ease-out: 快速開始,減速結束

5、ease-in-out:慢速開始和結束,中間先加後減

例子:

div
4、指定過渡延遲時間

屬性:transition-delay

取值:ms 或 s 作為單位的數值

3、觸發過渡效果

一般都是由使用者行為觸發

5、過渡屬性-過渡子屬性的簡寫模式

transition:property duration timing-function delay;

3、動畫

1、什麼是動畫

使元素從一種樣式逐漸變化為另一種樣式

其原理是通過 關鍵幀 控制動畫的每一步

注意:瀏覽器相容性

通過了瀏覽器字首解決相容性

-moz-

-webkit-

-o-2、使用動畫的步驟

1、宣告動畫

宣告動畫的名稱,並且指定關鍵幀的資訊

關鍵幀:

1、時間點

2、該時間點上的狀態(樣式)

2、使用動畫

通過動畫屬性,將動畫效果繫結到某個元素上

3、宣告動畫

語法

@keyframes 動畫名稱

... ...(1% ~ 99%)

100%

}

相容 chrome safari

@-webkit-keyframes 動畫名稱

... ...(1% ~ 99%)

100%

}

相容 firefox

@-moz-keyframes 動畫名稱

... ...(1% ~ 99%)

100%

}

實際例子:

設計摺疊面板:

使用css設計摺疊效果,沒使用js,使用過度屬性設計滑動效果,**如下:

設計CSS3動畫

在css3中,一般建立動畫需要使用animation實現,使用簡寫屬性,將動畫與div 元素繫結。animation可用於設定六個動畫屬性 transform 變形 transition 過渡 animation 動畫 一 transform 直接改變大小和位置,顯示改變的結構,沒有過渡和變形的時間...

css動畫 幀動畫

動畫 animation 設定關鍵幀 從左上,到右上,到右下的動畫 上面是系統性動畫屬性,下面拆分 animation 綜合性的動畫設定屬性 animation name 動畫名稱 animation duration 動畫的時間週期 animation timing function 動畫變化的速...

譯 CSS動畫 vs JS動畫

目前有兩個主流的方法在web上建立動畫 使用css或js。到底選擇哪種方法來實現動畫,完全取決於你的專案以及你想要達到的效果。tips 很多基礎的動畫都可以通過css或js來實現,但兩者的效果和時間會有差別。兩種方式各有千秋 如果你已經用了類似jquery的包含動畫函式的js框架,你會發現用它來控制...