Контейнер Vue panzoom

#vue.js #zooming #pan #panzoom

#vue.js #масштабирование #панорамирование #panzoom

Вопрос:

Я хотел бы использовать этот плагин для масштабирования и панорамирования ряда других компонентов, но изо всех сил пытаюсь найти наилучший способ реализации

https://github.com/timmywil/panzoom Это выглядит как хорошая библиотека для использования

Я только начал играть, но мое предположение состояло в том, чтобы создать базовый компонент

     <template>
  <div>
    <div style="overflow: hidden">
      <div id="panzoom-element">
        <slot />
      </div>
    </div>
  </div>
</template>
<script>
import Panzoom from '@panzoom/panzoom'

export default {
  props: {
    options: { type: Object, default: () => {} },
  },
  mounted() {
    this.panzoom = Panzoom(document.getElementById('panzoom-element'), {
      maxScale: 5,
    })
  },
  methods: {},
}
</script>
  

Затем я в своем Home.vue (view), чтобы обернуть компонент масштабирования вокруг других

  <PanzoomLayer>
            <NodesLayer />
            <TipsLayer />
            <ConnectionsLayer />
</PanzoomLayer>
  

Похоже, это ничего не дало 🙂
Может кто-нибудь указать мне правильное направление, пожалуйста?
Спасибо

Ответ №1:

Это хорошо работает для меня:

 <template>
      <div ref="panzoomElement">
         <slot />
      </div>
</template>

mounted() {
        this.$nextTick(() => {
            this.panzoom = Panzoom(this.$refs.panzoomElement, {
                maxScale: 5,
            });
        });
    },