css*_*EEK 7 html css css3 css-transforms
虽然创造了一些变革在我的网站的一些对象,我发现一个对象被赋予变换特性,following.If skew(20deg,45deg)会比与其他对象的不同skewX(20deg)和skewY(45deg).
有人能解释我为什么会这样吗?
.skew {
height:10em;
width:10em;
background:red;
margin:auto;
}
#first {
transform:skew(20deg,45deg);
}
#second {
transform:skewX(20deg) skewY(45deg);
}Run Code Online (Sandbox Code Playgroud)
<div class="skew" id="first"> skew(20deg,45deg) </div> <hr>
<div class="skew" id="second"> skewX(20deg) skewY(45deg) </div>Run Code Online (Sandbox Code Playgroud)
更新: skew语法短.我如何能实现我有同样的效果skewX(),并skewY()采用skew()短语法.
思考矩阵,当你这样做时
transform : skew(x, y);
Run Code Online (Sandbox Code Playgroud)
那么就像矩阵的交叉乘法
[X、Y、Z]
和
| 1, sx, 0 |
| sy, 1, 0 |
| 0, 0, 1 |
Run Code Online (Sandbox Code Playgroud)
哪里
sx = tan(x)和sy = tan(y)
产生新的坐标
X' = X + Y * sx
Y' = Y + X * sy
Z' = Z
Run Code Online (Sandbox Code Playgroud)
但当你这样做时
transform : skewX(x) skewY(y);
Run Code Online (Sandbox Code Playgroud)
它就像第一个叉乘矩阵
[X、Y、Z]
带矩阵
| 1, sx, 0 |
| 0, 1, 0 |
| 0, 0, 1 |
Run Code Online (Sandbox Code Playgroud)
产生新的坐标
X' = X + Y * sx
Y' = Y
Z' = Z
Run Code Online (Sandbox Code Playgroud)
然后是新的矩阵
[ X'、Y'、Z' ]
交叉乘以
| 1, 0, 0 |
| sy, 1, 0 |
| 0, 0, 1 |
Run Code Online (Sandbox Code Playgroud)
产生新坐标为
X" = X + Y * sx
Y" = Y + ( X + Y * sx ) * sy
Z" = Z
Run Code Online (Sandbox Code Playgroud)
因此Y坐标从Y + X * sy变为Y + ( X + Y * sx ) * sy
| 归档时间: |
|
| 查看次数: |
1395 次 |
| 最近记录: |