跳到主要内容

Transforms

变换是一种样式属性,可帮助你使用 2D 或 3D 变换修改组件的外观和位置。但是,一旦应用变换,被变换组件周围的布局保持不变,因此它可能会与附近的组件重叠。你可以对被变换组件、附近的组件应用外边距(margin),或者对容器应用内边距(padding)来防止这种重叠。

示例


参考

Transform

transform 接受一个变换对象数组或空格分隔的字符串值。每个对象都指定了将要变换的属性作为键,以及在变换中使用的值。对象不应合并。每个对象使用一个键/值对。

旋转变换需要一个字符串,以便变换可以用度(deg)或弧度(rad)表示。例如

js
{
transform: [{rotateX: '45deg'}, {rotateZ: '0.785398rad'}],
}

同样的效果也可以通过空格分隔的字符串实现

js
{
transform: 'rotateX(45deg) rotateZ(0.785398rad)',
}

斜切变换需要一个字符串,以便变换可以用度(deg)表示。例如

js
{
transform: [{skewX: '45deg'}],
}
类型必填
对象数组:{matrix: number[]}, {perspective: number}, {rotate: string}, {rotateX: string}, {rotateY: string}, {rotateZ: string}, {scale: number}, {scaleX: number}, {scaleY: number}, {translateX: number}, {translateY: number}, {skewX: string}, {skewY: string} 或字符串

decomposedMatrix, rotation, scaleX, scaleY, transformMatrix, translateX, translateY

已废弃。 请改用 transform 属性。

变换原点

transformOrigin 属性设置视图变换的原点。变换原点是应用变换的中心点。默认情况下,变换的原点是 center

示例

变换原点支持 pxpercentage 以及关键词 topleftrightbottomcenter 等值。

transformOrigin 属性可以通过一个、两个或三个值指定,其中每个值代表一个偏移量。

单值语法:

  • 该值必须是 pxpercentage,或者是关键词 leftcenterrighttopbottom 之一。
js
{
transformOrigin: '20px',
transformOrigin: 'bottom',
}

双值语法:

  • 第一个值(x 偏移量)必须是 pxpercentage,或者是关键词 leftcenterright 之一。
  • 第二个值(y 偏移量)必须是 pxpercentage,或者是关键词 topcenterbottom 之一。
js
{
transformOrigin: '10px 2px',
transformOrigin: 'left top',
transformOrigin: 'top right',
}

三值语法:

  • 前两个值与双值语法相同。
  • 第三个值(z 偏移量)必须是 px。它始终表示 Z 偏移量。
js
{
transformOrigin: '2px 30% 10px',
transformOrigin: 'right bottom 20px',
}

数组语法

transformOrigin 也支持数组语法。这使得将其与 Animated API 一起使用变得方便。它还避免了字符串解析,因此效率更高。

js
{
// Using numeric values
transformOrigin: [10, 30, 40],
// Mixing numeric and percentage values
transformOrigin: [10, '20%', 0],
}

你可以参考 MDN 关于 变换原点 的指南以获取更多信息。