Мне нужно точно знать ширину и высоту произвольного g
элемента в моем, SVG
потому что мне нужно нарисовать маркер выбора вокруг него, как только пользователь щелкнет по нему.
То , что я видел в интернете что - то вроде: d3.select("myG").style("width")
. Проблема в том, что для элемента не всегда будет установлен явный атрибут ширины. Например, когда я создаю круг внутри g
, у него будет установлен radious ( r
) вместо ширины. Даже если я использую этот window.getComputedStyle
метод для a circle
, он вернет «auto».
Есть ли способ рассчитать ширину произвольного svg
выделения в D3
?
Спасибо.
javascript
d3.js
Андре Пена
источник
источник
getBoundingClientRect()
вместо SVG-onlygetBBox()
. Вот так:d3.select("body").node().getBoundingClientRect().width
Пример :
источник
Однажды я столкнулся с проблемой, когда я не знал, какой элемент в настоящее время хранится в моей переменной (svg или html), но мне нужно было получить его ширину и высоту. Я создал эту функцию и хочу ею поделиться:
Небольшая демонстрация в скрытом фрагменте ниже. Мы обрабатываем щелчок по синему div и красному кружку svg с той же функцией.
Показать фрагмент кода
источник