Skip to content

Transform ​

By default, the editor allows visual manipulation of elements (move, scale, rotate). You can also manually control them using the methods below.

Key Methods ​

You can also directly use the layout property methods of the element to move and transform the editor frame.

move(x: number | IPointData, y = 0): void ​

Translate selected elements as an incremental operation. Supports passing a point object.

flip(axis: 'x' | 'y') ​

Mirror/flip selected elements along the specified axis (in world coordinate system).

scaleOf(origin: IAlign | IPointData, multiplyScaleX: number, multiplyScaleY = scaleX) ​

Scale selected elements around the origin of the element (in box coordinates) as an incremental operation.

rotateOf(origin: IAlign | IPointData, addRotation: number) ​

Rotate selected elements around the origin of the element (in box coordinates) as an incremental operation.

skewOf(origin: IAlign | IPointData, addSkewX: number, addSkewY = 0) ​

Skew selected elements around the origin of the element (in box coordinates) as an incremental operation.

ts
// current selected element
const { element } = app.editor

// To scale to a target scale, divide by current scale:
app.editor.scaleOf('center', 1.5 / element.scale)

// To rotate to a target rotation, subtract current rotation:
app.editor.rotateOf('center', 45 - element.rotation)

// To skew to a target skewX, subtract current skewX:
app.editor.skewOf('center', 45 - element.skewX)

Belongs to ​

Editor Element ​

Example ​

Manually rotate element ​

ts
// #图形编辑器 [手动旋转元素]
import { App, Rect } from 'leafer-ui'
import '@leafer-in/editor' // 导入图形编辑器插件
import '@leafer-in/viewport' // 导入视口插件 (可选)

const app = new App({ view: window, editor: {} })

const rect = Rect.one({ editable: true, fill: '#FEB027', cornerRadius: [20, 0, 0, 20] }, 100, 100)

app.tree.add(rect)
app.tree.add(Rect.one({ editable: true, fill: '#FFE04B', rotation: 10, cornerRadius: [0, 20, 20, 0] }, 300, 100))


app.editor.select(rect) // 选中 rect

setTimeout(() => {

    // 手动旋转到45度 
    const rotation = 45

    // 围绕中心旋转到指定 rotation, 需减去元素的 rotation,如下:
    app.editor.rotateOf('center', rotation - rect.rotation)

}, 2000)

Released under the MIT License.