2016-08-03 13 views
5

Po uruchomieniu d3.select(this).attr("transform") elementu otrzymuję odpowiedź translate(20.00,778). Muszę jednak uzyskać indywidualne wartości tłumaczenia.D3 v4 Uzyskaj wartości translacji elementu

W v3, można użyć

var t = d3.transform(element.attr("transform")); 
t.translate; 

Jednak d3.transform nie jest dostępny w V4. Jak osiągnąć równoważny wynik?

+1

Możesz to osiągnąć, tworząc własną funkcję. Ta odpowiedź pokazuje, jak to zrobić: http://stackoverflow.com/a/38230545/5768908 –

+0

https://stackoverflow.com/questions/20340263/d3-retrieve-and-add-to-current-selections-attribute- wartość –

Odpowiedz

5

Spróbuj tego.

string = element.attr("transform"); 

translate = string.substring(string.indexOf("(")+1, string.indexOf(")")).split(","); 

Następnie możesz uzyskać dostęp do dx przez przetłumaczenie [0] i dy przez przetłumaczenie [1].

+1

Mimo że używanie funkcji D3 byłoby czyste, to na razie to pomaga – Joel

+0

To nie działa w Edge, ponieważ krawędź oddziela argumenty białymi znakami, takimi jak translate (10 20) zamiast translate (10,20) jak chrom i firefox. – user2553930