Итак, я нашел скрипт, который делает именно это , но увеличивает масштаб <g>
который оборачивает все содержимое SVG, применяя к нему матрицу преобразования (хотя он не увеличивает масштаб в Opera из-за обнюхивания). Оборачивать все элементы в <g>
не вариант, потому что я делаю просмотрщик изображений и могут быть загружены разные файлы.
Установка transform="matrix(...)"
на корень <svg>
не дает никакого эффекта. Установка currentScale
на <svg>
увеличивает изображение, но делает это от верхнего левого угла, а не от положения мыши или от центра изображения. И функция панорамирования тоже не работает, так как кажется невозможным перетащить весь элемент <svg>
.
Манипуляции с атрибутом viewBox
кажутся полезными, но очень сложно определить для него необходимые значения.
Итак, можете ли вы придумать способ масштабирования и панорамирования в таком контексте?
Вы можете загрузить демонстрацию здесь . Требуется, чтобы Opera была установлена на вашем компьютере.