上述提到的变换属性属于CSS属性的“2D Transforms”类别。除了上面提到的“matrix()”方法外,还有一些其他方法与transform一起使用:
“translate()”、“rotate()”、“scale()”和“skew()”
要理解“matrix()”方法,最好先了解其他四种类型。
“TRANSFORMS:”
这四种变换方法正如它们的名字所描述的那样。
“TRANSLATE:”
“查看 translate 示例
here。”
“translate(e, f)”需要两个参数。第一个参数是元素的x位置,第二个参数是y位置,都是相对于其初始位置的。如果您想将一个元素向右移动50像素和向下移动100像素,则CSS将如下所示:“transform: translate(50px, 100px);”。正的X值向右,正的Y值向下;负数会将元素移动到相反的方向。
![Translate](https://istack.dev59.com/DXkrk.webp)
旋转:
请在此处查看旋转示例。
rotate(c)
接受一个参数,即您想要元素旋转的角度。正数表示顺时针旋转,负数表示逆时针旋转。将元素顺时针旋转30度(正数)将如下所示:transform: rotate(30deg);
。请注意,这次参数是以deg
为单位,而不是px
。
![Rotate](https://istack.dev59.com/2paBD.webp)
比例尺:
查看比例尺示例这里。
scale(a, d)
接受两个参数。第一个参数是在X方向上缩放的量,而第二个参数是在Y方向上缩放的量。缩放通过将当前值(宽度、高度)乘以比例值实现。在X方向上将元素放大2倍,在Y方向上放大4倍的效果如下:transform: scale(2, 4);
。参数可以是任何值,包括小数和负数。负值会使元素沿着相应的轴翻转。
![Scale](https://istack.dev59.com/0rSTn.webp)
SKEW:
查看这里的扭曲示例here。
skew(b, c)
可能是最难解释的变换之一。 skew(c, d)
接受两个参数。 第一个参数对应水平表面(顶部和底部),而第二个参数对应垂直表面(左侧和右侧)。 两个参数都以 deg
的形式给出,类似于 rotate()
。 第一个参数的正值将使垂直表面绕其中心点逆时针旋转。 负值将使垂直表面绕其中心点顺时针旋转。 第二个参数的正值将使水平表面顺时针旋转其中心点,而负值将使水平表面逆时针旋转。 每个参数的限制(以deg为单位)为+-90deg-如下例所示。
![Skew](https://istack.dev59.com/5x27v.webp)
矩阵:
查看矩阵示例此处。
matrix(a, b, c, d, e, f)
可以执行先前列出的所有变换。
两个参数a
和d
用于分别在X方向和Y方向上缩放元素。与scale(a, d)
方法完全相同。
第二个和第三个参数b
和c
用于倾斜元素。这两个值的工作方式与skew(b, c)
方法完全相同。
最后,最后两个参数e
和f
用于在X方向和Y方向上平移元素。与translate(e, f)
方法完全相同。
您可以使用
matrix()
转换来实现大量效果。请查看
this网站,在页面向下滚动时(在计算机上,不是移动设备),页面上的元素通过
matrix()
方法进行变换。这会产生很棒的效果!
最后,不同的浏览器有不同的语法。根据w3schools
here,它们如下:
transform:
-ms-transform:
-webkit-transform:
最佳实践是在推出您的网站之前在各种浏览器上测试它们。
有关各种2D变换的更多信息,请查看
此链接。有关
matrix()
方法背后的数学,请查看
此链接。
matrix(0.8, 0.5, -0.5, 0.8, 0, 0)
。请注意,该翻译并未对原文进行解释或改变其含义。 - Birrel