Подтвердить что ты не робот

Получите размер графики svg, если атрибуты width/height на <svg> не установлены

Итак, как получить размер SVG файла с javascript, когда ширина и высота не установлены в элементе svg? Svg является строкой, но при необходимости может быть сделана DOM.

4b9b3361

Ответ 1

Вы можете использовать метод getBBox() объекта SVGElement. Он сообщает вам ширину и высоту, x и y смещение в пикселях без учета масштабирования элемента.

document.getElementById('myelem').getBBox().width  
document.getElementById('myelem').getBBox().height
Я думаю, что

- это то, что вы ищете.

EDIT:

  • Недавно я узнал, что малоизвестный getBoundingClientRect() работает! Вы также можете сделать: var el = document.getElementById('myelem'); var mywidth = el.getBoundingClientRect().width;

  • Имейте в виду, что существует разница между getBBox и getBoundingClientRect. getBBox получает начальные размеры - getBoundingClientRect также относится к преобразованиям, выполненным с помощью масштабирования и т.д.

Ответ 2

SVG - это масштабируемая векторная графика и, следовательно, может иметь любую произвольную высоту и ширину. Формат пропорционален только формату.