@tenaro

Vue.js / как создать и поддерживать клон dom элемента?

есть div.scene, внутри которого много элементов, перетаскиваются, добавляются, удаляются
как сделать minimap этого блока, т.е ту же сцену, только в масштабе, чтобы она обновлялась при изменении оригинального блока?
пытался сохранить в картинку и работать с ней - не получается, у элементов внутри абсолютное позиционирование и сцена центруется с размерами 0x0px
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
В firefox есть такая нестандартная фича как -moz-element, которая идеально подходит под задачу:
Увы, она никогда не станет стандартной, да и из ff её могут рано или поздно выпилить.

В остальном, решения, собственно, два:
1. Делать всю рабочую область на собственном canvas движке(можно попробовать что-то такое), и тогда просто получать копию холста на меньший canvas. Это более оптимально но требует переписывание всего и сложности основной работы.
2. Держать два идентичных компонента делящих одно состояние(на пример через внешний Vue.observable\reactive или vuex), один из которых уменьшать с помощью transform: scale().

html2canvas, предложенный выше, имеет очень ограниченную область применения и вряд ли тут сработает, но можете попробовать

P.S. Есть ещё один вариант: на любое обновление(тут поймать обновление в зависимости от вашей архитектуры может быть либо очень просто, либо очень сложно) делать верхнему компоненту тупо this.$el.cloneNode(true) и класть полученную копию в нужное место с тем же transform: scale(), но это может весьма сильно тормозить в зависимости от количества элементов и частоты обновления.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы