This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Note: This feature is available in Web Workers.
The scale3dSelf() method of the DOMMatrix interface is a mutable transformation method that modifies a matrix by applying a specified scaling factor to all three axes, centered on the given origin, with a default origin of (0, 0, 0), returning the 3D-scaled matrix.
To 3D-scale a matrix without mutating it, see DOMMatrixReadOnly.scale3d(), which creates a new scaled matrix while leaving the original unchanged.
scale3dSelf() scale3dSelf(scale) scale3dSelf(scale, originX) scale3dSelf(scale, originX, originY) scale3dSelf(scale, originX, originY, originZ)
scaleA multiplier; the scale value. If no scale is supplied, this defaults to 1. If scale is not 1, the is2D property of the current matrix is set to false.
originX OptionalAn x-coordinate for the origin of the transformation. If no origin is supplied, this defaults to 0.
originY OptionalA y-coordinate for the origin of the transformation. If no origin is supplied, this defaults to 0.
originZ OptionalA z-coordinate for the origin of the transformation. If no origin is supplied, this defaults to 0.
Returns itself; a DOMMatrix.
const matrix = new DOMMatrix();
console.log(matrix.scale3dSelf(2).toString());
/* matrix3d(
2, 0, 0, 0,
0, 2, 0, 0,
0, 0, 2, 0,
0, 0, 0, 1) */
console.log(matrix.scale3dSelf(3.1, 25, 25, 1.25).toString());
/* matrix3d(
6.2, 0, 0, 0,
0, 6.2, 0, 0,
0, 0, 6.2, 0,
-105, -105, -5.25, 1) */
console.log(matrix.toString());
/* matrix3d(
6.2, 0, 0, 0,
0, 6.2, 0, 0,
0, 0, 6.2, 0,
-105, -105, -5.25, 1) (same as above) */
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
scale3dSelf |
61 | 79 | 33Starting in Firefox 69, the first parameter (scale) is now optional with a default value of 1, per the specification. Previously it was required. |
48 | 11 | 61 | 33Starting in Firefox for Android 79, the first parameter (scale) is now optional with a default value of 1, per the specification. Previously it was required. |
45 | 11 | 8.0 | 61 | 11 |
DOMMatrixReadOnly.scale3d()DOMMatrix.scaleSelf()transform property and the scale3d() and matrix3d() functionstransform attributeCanvasRenderingContext2D interface transform() method
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix/scale3dSelf