2016-08-03 17 views
5

Wenn ich d3.select(this).attr("transform") auf ein Element ausführen, erhalte ich eine Antwort translate(20.00,778). Jedoch muss ich individuelle Werte von übersetzen erhalten.D3 v4 Get übersetzen Werte eines Elements

In v3 kann man

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

verwenden jedoch d3.transform in v4 ist nicht verfügbar. Wie erreiche ich ein äquivalentes Ergebnis?

+1

Sie können es erreichen, indem Sie Ihre eigene Funktion erstellen. Diese Antwort zeigt, wie es geht: http://stackoverflow.com/a/38230545/5768908 –

+0

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

Antwort

5

Versuchen Sie es.

string = element.attr("transform"); 

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

Dann können Sie dx durch übersetzen [0] und dy durch übersetzen [1].

+1

Obwohl es sauber wäre, D3-Funktion zu verwenden, hilft dies vorläufig – Joel

+0

Dies funktioniert nicht in Edge als Edge trennt die Argumente mit Leerzeichen wie translate (10 20) anstelle von translate (10,20) wie Chrom und Firefox. – user2553930

Verwandte Themen