Едно от предимствата на 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 г.