DOMMatrixReadOnly: scale3d() 方法

Baseline 已广泛支持

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

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

scale3d() 方法是 DOMMatrixReadOnly 接口的一个方法,它创建一个新矩阵,该矩阵是通过对当前矩阵应用 3D 缩放变换而得到的。它返回一个由原始 3D 矩阵根据指定的缩放因子(以指定的原点为中心)缩放而创建的新 DOMMatrix,默认原点为 (0, 0, 0)。原始矩阵不会被修改。

要边进行 3D 缩放边修改矩阵,请参阅 DOMMatrix.scale3dSelf()

语法

js
scale3d()
scale3d(scale)
scale3d(scale, originX)
scale3d(scale, originX, originY)
scale3d(scale, originX, originY, originZ)

参数

scale

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

originX 可选

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

originY 可选

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

originZ 可选

变换原点的 z 坐标。如果此值为 0(省略时的默认值),则结果矩阵可能不是 3D 的。

返回值

一个 DOMMatrix

示例

js
const matrix = new DOMMatrix();
console.log(matrix.toString()); // no transforms applied
// matrix(1, 0, 0, 1, 0, 0)

console.log(matrix.scale3d(2).toString());
/* matrix3d(
    2, 0, 0, 0, 
    0, 2, 0, 0, 
    0, 0, 2, 0, 
    0, 0, 0, 1) */
console.log(matrix.scale3d(0.5, 25, 25, 1.25).toString());
/* matrix3d(
    0.5, 0, 0, 0, 
    0, 0.5, 0, 0, 
    0, 0, 0.5, 0, 1
    2.5, 12.5, 0.625, 1) */
console.log(matrix.toString()); // original matrix is unchanged
// matrix(1, 0, 0, 1, 0, 0)

规范

规范
Geometry Interfaces Module Level 1
# dom-dommatrixreadonly-scale3d

浏览器兼容性

另见