From 759fbd94f1bbcf57c475cb9bb90a6494dac66287 Mon Sep 17 00:00:00 2001 From: axolotle Date: Tue, 27 Jul 2021 13:58:44 +0200 Subject: [PATCH] center to origin node in LibraryTree --- src/components/layouts/MapZoom.vue | 11 +++++++++-- src/pages/library/LibraryTree.vue | 13 +++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/components/layouts/MapZoom.vue b/src/components/layouts/MapZoom.vue index c713abe..a93fc5d 100644 --- a/src/components/layouts/MapZoom.vue +++ b/src/components/layouts/MapZoom.vue @@ -24,7 +24,8 @@ export default { id: { type: String, required: true }, minZoom: { type: Number, default: 0.3 }, maxZoom: { type: Number, default: 1 }, - initialZoom: { type: Number, default: 1 } + initialZoom: { type: Number, default: 1 }, + center: { type: Object, default: null } }, data () { @@ -46,6 +47,12 @@ export default { } }, + watch: { + center (val, prevVal) { + this.transform = this.transform.translate(prevVal.x - val.x, prevVal.y - val.y) + } + }, + methods: { updateSize () { const { width, height } = this.$el.getBoundingClientRect() @@ -67,7 +74,7 @@ export default { window.addEventListener('resize', () => this.updateSize()) this.zoom.on('zoom', ({ transform }) => { - this.transform = transform + this.transform = this.center ? transform.translate(-this.center.x, -this.center.y) : transform this.scale = transform.k }) diff --git a/src/pages/library/LibraryTree.vue b/src/pages/library/LibraryTree.vue index f9ac4d9..deb2f7c 100644 --- a/src/pages/library/LibraryTree.vue +++ b/src/pages/library/LibraryTree.vue @@ -1,6 +1,10 @@