Я работаю над некоторыми ECMAScript/JavaScript для SVG-файла и должен получить width
и height
элемента text
, чтобы изменить размер прямоугольника, который его окружает. В HTML я мог бы использовать атрибуты offsetWidth
и offsetHeight
для элемента, но кажется, что эти свойства недоступны.SVG получить ширину текстового элемента
Вот фрагмент, с которым мне нужно работать. Мне нужно изменить ширину прямоугольника всякий раз, когда я меняю текст, но я не знаю, как получить фактический width
(в пикселях) элемента text
.
<rect x="100" y="100" width="100" height="100" />
<text>Some Text</text>
Любые идеи?
Спасибо. Я также нашел другую функцию, которая могла бы помочь с шириной. textElement.getComputedTextLength(). Я попробую сегодня и посмотрю, какая из них работает лучше для меня. – spudly
Я играл с ними на прошлой неделе; метод getComputedTextLength() возвратил тот же результат, что и getBBox(). width для вещей, которые я пробовал, поэтому я просто пошел с ограничивающей рамкой, так как мне нужны были как ширина, так и высота. Я не уверен, есть ли какие-либо обстоятельства, когда длина текста будет отличаться от ширины: я думаю, что, возможно, этот метод предоставлен для помощи в текстовом макете, таком как разделение текста по нескольким строкам, тогда как ограничивающая рамка - это общий доступный метод на всех (?) элементах. – NickFitz
Ссылка на 'getBBox()' переместилась на http://wiki.svg.org/index.php/GetBBox – RobM