DOMMatrix: scaleSelf() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

注意:此功能在 Web Workers 中可用。

DOMMatrix 接口的 scaleSelf() 方法是一个可变转换方法,它通过应用指定的缩放因子来修改矩阵,该缩放因子以给定的原点为中心,默认原点为 (0, 0),并返回缩放后的矩阵。

要缩放矩阵而不修改它,请参阅 DOMMatrixReadOnly.scale(),它会创建一个新的缩放矩阵,而保持原矩阵不变。

语法

js
scaleSelf()
scaleSelf(scaleX)
scaleSelf(scaleX, scaleY)
scaleSelf(scaleX, scaleY, scaleZ)
scaleSelf(scaleX, scaleY, scaleZ, originX)
scaleSelf(scaleX, scaleY, scaleZ, originX, originY)
scaleSelf(scaleX, scaleY, scaleZ, originX, originY, originZ)

参数

scaleX 可选

x 轴缩放值的乘数。如果未提供,则默认为 1

scaleY 可选

y 轴缩放值的乘数。如果未提供,则默认为 scaleX 的值。

scaleZ 可选

z 轴缩放值的乘数。如果此值不等于 1,则生成的矩阵将是 3D 的。

originX 可选

转换原点的 x 坐标。如果未提供原点,则默认为 0。

originY 可选

转换原点的 y 坐标。如果未提供原点,则默认为 0。

originZ 可选

转换原点的 z 坐标。如果未提供原点,则默认为 0。如果此值不等于 0,则生成的矩阵将是 3D 的。

返回值

返回自身;一个 DOMMatrix

如果沿 z 轴应用缩放,则矩阵将是一个 4x4 的 3D 矩阵。

示例

此 SVG 包含两个半透明的方形,一个红色,一个蓝色,每个都位于文档原点。

html
<svg viewBox="0 0 50 50" height="200">
  <rect width="25" height="25" fill="#ff000099" />
  <rect id="transformed" width="25" height="25" fill="#0000ff99" />
</svg>

此 JavaScript 首先创建一个矩阵,然后使用 scaleSelf() 方法将矩阵缩放为宽度减半、高度加倍的矩阵。

然后将该矩阵作为 transform 应用于蓝色方形,从而改变其尺寸和位置。红色方形保持不变。

js
const matrix = new DOMMatrix();
matrix.scaleSelf(0.5, 2);

document
  .querySelector("#transformed")
  .setAttribute("transform", matrix.toString());

规范

规范
Geometry Interfaces Module Level 1
# dom-dommatrix-scaleself

浏览器兼容性

另见