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