愛伊米

css Matrix屬性詳解

Css中的transform是我們在進行動畫效果製作和圖形變化常用的屬性,transform中的scale支援縮放,translate支援位移,rotate支援旋轉……

但是為了方便使用,有這麼一個屬性,其中有6個引數,可以同時進行旋轉,位移,縮放和傾斜。

Matrix初始值為

transform: matrix(1,0,0,1,0,0);

轉換為數學中的矩陣為

1 0 0

0 1 0

0 0 1

可以這麼理解:

Transform: matrix(a,b,c,d,e,f);

a c e

b d f

0 0 1

數學的矩陣中多出來的最後3個預設為001,我們只需要操作前6個即可

平移:

那麼如何透過這個屬性來平移?

即修改引數e和引數f來實現,e對應x軸,f對應y軸;

這裡建立的div預設在html的左上角

css Matrix屬性詳解

我們透過修改matrix的引數來實現位移:

css Matrix屬性詳解

我們修改了e和f所對應的值

css Matrix屬性詳解

圖形x軸和y軸都位移了100px

效果和如下圖程式碼相同:

css Matrix屬性詳解

縮放:

縮放只需要修改a和d的值,a對應縮放x軸,d對應縮放y軸

修改的數值即為原來的n倍

x軸不變,y軸放大到原來的兩倍

css Matrix屬性詳解

旋轉:

旋轉要稍微複雜一點,預設的角度所對應的:

transform: matrix(cos 0,sin0,-sin0,cos0,0,0);

我們想要將這個元素順時針旋轉45度,只要算出對應的cos45,sin45即可

Sin45=0。707,cos45 = 0。707;

效果如下:

css Matrix屬性詳解