Одним из преимуществ файлов SVG является возможность редактировать их с помощью JavaScript на HTML-странице. Чтобы упростить процесс, я создаю небольшое приложение с Svelte, куда вы можете загрузить файл SVG, отредактировать его, а затем сохранить обратно на диск.
Откройте SVG-файл
Сначала я создаю кнопку для выбора файла для загрузки и элемент HTML для отображения файла.
После выбора файла я получаю что-то вроде этого:
Как масштабировать и перемещать карты SVG
Для некоторых карт достаточно общего вида, но в данном случае меня интересует возможность увеличения некоторых элементов. И, конечно же, возможность перемещаться по карте.
Для этого я могу использовать репозиторий luncheon/svg-pan-zoom-container. Я устанавливаю пакет, используя:
npm i svg-pan-zoom-container
Поэтому я меняю свой код:
Атрибут data-zoom-on-wheel
включает zoom
с помощью колесика мыши. Установите минимальный масштаб 0,3 и максимальный масштаб 20. Атрибут data-pan-on-drag
разрешает движение мыши. В данном случае я устанавливаю, что движение осуществляется комбинацией клавиш control
плюс left mouse button
.
В дополнение к колесику мыши также полезно иметь кнопку или что-то подобное для управления масштабированием. Я могу, например, создать элемент input
типа range
, привязав его значение к переменной scale
.
Чтобы передать масштаб от карты к элементу, я добавляю MutationObserver
:
Затем я добавляю новое событие к элементу input [range]
для динамического изменения масштаба:
Результат выглядит следующим образом:
Наконец, я могу добавить кнопку для сброса масштаба и возврата к исходному:
Следующий шаг — понять, как управлять слоями и выделениями. Но об этом я расскажу в следующем посте.
Спасибо за прочтение! Оставайтесь с нами, чтобы узнать больше.
Не пропустите мою следующую статью — подпишитесь на мой Список адресов электронной почты среднего уровня
Первоначально опубликовано на https://blog.stranianelli.com 16 мая 2022 г.