如何从组中获取翻译属性?

3gw*_*ain 4 javascript jquery svg d3.js

我有许多 svg 组,每个组中都有许多子项。

如果发生这种情况,clickgroup想将我所有的团体和他们的孩子一起搬走。我想知道translate它的属性clicked组的属性,以便我可以移动其他组。

我试图获得该translate财产,但未能获得。

这是我尝试过的:

var svg = d3.select('body').append('svg').attr({width:300,height:300});    
var group = svg.append('svg:g').attr({
    'width':100,
    'height':100,
    'transform' : 'translate(50, 50)'
});

group.append('circle').attr({'r':30});

group.on('click', function () {
    console.log(this); //how to get the translated properties?
});
Run Code Online (Sandbox Code Playgroud)

杰斯小提琴

Rob*_*son 5

您可以使用 getAttribute 例如

this.getAttribute("transform")
Run Code Online (Sandbox Code Playgroud)

SVG DOM

this.transform.baseVal.getItem(0).matrix.e + ", " + this.transform.baseVal.getItem(0).matrix.f)
Run Code Online (Sandbox Code Playgroud)

baseVal.numberOfItems 获取转换有多少个组件,getItem(0).type获取其类型,即本例中 2 = 转换。

在 Firefox 上,这会提醒我 50、50。