2016-08-03 71 views
5

當我在元素上運行d3.select(this).attr("transform")時,得到的響應爲translate(20.00,778)。不過,我需要獲得翻譯的個人價值。D3 v4獲取元素的翻譯值

在v3中,可以使用

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

然而d3.transform不V4使用。如何達到相同的結果?

+1

你可以通過創建你自己的功能來實現它。此答案顯示如何執行此操作:http://stackoverflow.com/a/38230545/5768908 –

+0

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

回答

5

試試這個。

string = element.attr("transform"); 

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

然後,您可以通過translate [1]翻譯[0]和dy來訪問dx。

+1

儘管使用D3函數會很乾淨,但這對於暫時有幫助 – Joel

+0

這不適用於邊緣,因爲邊緣將參數與空白分開,如translate(10 20)而不是translate(10,20)像鉻和火狐。 – user2553930