mirror of
https://github.com/wanglin2/mind-map.git
synced 2026-02-21 18:37:43 +08:00
Feat:移动指定节点到画布中心时默认不恢复缩放
This commit is contained in:
parent
924b2660e1
commit
07a3f65911
@ -320,5 +320,7 @@ export const defaultOpt = {
|
||||
addContentToHeader: null,
|
||||
addContentToFooter: null,
|
||||
// 演示插件配置
|
||||
demonstrateConfig: null
|
||||
demonstrateConfig: null,
|
||||
// 移动节点到画布中心、回到根节点等操作时是否将缩放层级复位为100%
|
||||
resetScaleOnMoveNodeToCenter: false
|
||||
}
|
||||
|
||||
@ -1801,19 +1801,28 @@ class Render {
|
||||
|
||||
// 移动节点到画布中心
|
||||
moveNodeToCenter(node) {
|
||||
const { resetScaleOnMoveNodeToCenter } = this.mindMap.opt
|
||||
let { transform, state } = this.mindMap.view.getTransformData()
|
||||
let { left, top, width, height } = node
|
||||
if (!resetScaleOnMoveNodeToCenter) {
|
||||
left *= transform.scaleX
|
||||
top *= transform.scaleY
|
||||
width *= transform.scaleX
|
||||
height *= transform.scaleY
|
||||
}
|
||||
let halfWidth = this.mindMap.width / 2
|
||||
let halfHeight = this.mindMap.height / 2
|
||||
let { left, top, width, height } = node
|
||||
let nodeCenterX = left + width / 2
|
||||
let nodeCenterY = top + height / 2
|
||||
let { state } = this.mindMap.view.getTransformData()
|
||||
let targetX = halfWidth - state.x
|
||||
let targetY = halfHeight - state.y
|
||||
let offsetX = targetX - nodeCenterX
|
||||
let offsetY = targetY - nodeCenterY
|
||||
this.mindMap.view.translateX(offsetX)
|
||||
this.mindMap.view.translateY(offsetY)
|
||||
this.mindMap.view.setScale(1)
|
||||
if (resetScaleOnMoveNodeToCenter) {
|
||||
this.mindMap.view.setScale(1)
|
||||
}
|
||||
}
|
||||
|
||||
// 回到中心主题,即设置根节点到画布中心
|
||||
|
||||
Loading…
Reference in New Issue
Block a user