Saya perlu tahu persis lebar dan tinggi untuk g
elemen arbitrer di saya SVG
karena saya perlu menggambar penanda seleksi di sekitarnya setelah pengguna mengkliknya.
Apa yang saya lihat di internet adalah sesuatu seperti: d3.select("myG").style("width")
. Masalahnya adalah bahwa elemen tersebut tidak selalu memiliki set atribut lebar eksplisit. Misalnya, ketika saya membuat lingkaran di dalam g
, itu akan memiliki r
set radious ( ) bukan lebarnya. Bahkan jika saya menggunakan window.getComputedStyle
metode pada a circle
, itu akan mengembalikan "otomatis".
Apakah ada cara untuk menghitung lebar svg
selement arbitrer D3
?
Terima kasih.
sumber
getBoundingClientRect()
hanya SVGgetBBox()
. Seperti:d3.select("body").node().getBoundingClientRect().width
Contoh:
sumber
Suatu ketika saya menghadapi masalah ketika saya tidak tahu elemen mana yang saat ini disimpan dalam variabel saya (svg atau html) tetapi saya perlu mendapatkannya lebar dan tinggi. Saya membuat fungsi ini dan ingin membagikannya:
Demo kecil di cuplikan tersembunyi di bawah ini. Kami menangani klik pada div biru dan lingkaran svg merah dengan fungsi yang sama.
Tampilkan cuplikan kode
sumber