前面文章提到了市面上的 Slider 套件大多使用 CSS 的變形 (transform) 屬性,今天就來聊聊如何使用這個屬性,以達到我們期待中的效果。
transform 屬性可以用的屬性值非常的多唷。有 12 個可以設定單一效果屬性的函式有 12 個,可以一次設定多個效果的函式有 9 個。它又分為 2D 及 3D 兩種類別。
只使用一個參數,且效果影響的方向或變型的種類只有一種。
函式 | 類型 | 功用 | 參數 | 說明 |
---|---|---|---|---|
translateX | 2D | 平移 | translateX(x ) |
進行 X 軸方向的移動 |
translateY | 2D | 平移 | translateY(y ) |
進行 Y 軸方向的移動 |
translateZ | 3D | 平移 | translateZ(z ) |
進行 Z 軸方向的移動 |
scaleX | 2D | 縮放 | scaleX(x ) |
進行 X 軸方向的比例放大或縮小 |
scaleY | 2D | 縮放 | scaleY(y ) |
進行 Y 軸方向的比例放大或縮小 |
scaleZ | 3D | 縮放 | scaleZ(z ) |
進行 Z 軸方向的比例放大或縮小 |
skewX | 2D | 傾斜 | skewX(a ) |
從 X 軸方向以設定的角度傾斜 |
skewY | 2D | 傾斜 | skewY(a ) |
從 Y 軸方向以設定的角度傾斜 |
rotate | 2D | 旋轉 | rotate(a ) |
進行順時針或逆時針的旋轉 |
rotateX | 3D | 旋轉 | rotateX(a ) |
進行 X 軸方向的旋轉 |
rotateY | 3D | 旋轉 | rotateY(a ) |
進行 Y 軸方向的旋轉 |
rotateZ | 3D | 旋轉 | rotateZ(a ) |
進行 Z 軸方向的旋轉 |
使用多個參數,為多個單一效果屬性值的集合。
函式 | 類型 | 功用 | 參數 | 說明 |
---|---|---|---|---|
matrix | 2D | 矩陣 | matrix(... ) |
設定 6 個值進行 2D 矩陣變化 |
matrix3d | 3D | 矩陣 | matrix3d(... ) |
設定 12 個值進行 3D 矩陣變化 |
translate | 2D | 平移 | translate(x , y ) |
等同 translateX, translateY |
translate3d | 3D | 平移 | translate3d(x , y , z ) |
等同 translateX, translateY, translateZ |
scale | 2D | 縮放 | scale(x , y ) |
等同 scaleX, scaleY |
scale3d | 3D | 縮放 | scale3d(x , y , z ) |
等同 scaleX, scaleY, scaleZ |
rotate3d | 3D | 旋轉 | rotate3d(x , y , z , a ) |
對 x, y, z 軸進行 a 角度的旋轉 |
skew | 2D | 傾斜 | skew(a , a ) |
等同 skewX, skewY |
參數說明
x
: 代表 X 軸的值。y
: 代表 Y 軸的值。z
: 代表 Z 軸的值。a
: 代表角度 (angle) 的值。由於 transform 屬性需要大量的範例才好理解,因此分為三篇文章介紹:
套用 transform 屬性在我們的 Slider 會在 Day 17 (預計)。敬請期待喔。
今天的文章並沒有程式碼範例,不過之前的範例可在 GitHub Page 閱讀
原始碼可在 2022 鐵人賽專用 GitHub Repo 下載