使用D3.js,我想多次转换一个group的x(例如,通过点击按钮使每次点击都会造成一次变换),从该组的当前位置开始。问题是,我无法检索到该组的x,即使我找到了它,我也找不到任何内置函数让我从其当前的更改group的。我是否遗漏了重要的东西?很奇怪我无法获得添加到SVG“stage”的元素的值。
我的代码如下(为Lars编辑):我按照您昨天建议的方式创建了节点(克隆它们)。
var m=[5,10,15,20,25,30];
var count=0;
d3.select('svg').on("mouseup", function(d, i){
count+=0.5;
var n = d3.selectAll(".myGroup");
n.each(function(d,i) {
if(i!=0){
// here I need to know the current x of the current n element but I
// can't get it
// this causes error "Uncaught TypeError: undefined is not a function"
// var currentx = d3.transform(this.attr("transform")).translate[0];
this.setAttribute("transform", "translate("+((100/m[i])*count)+",10)");
}
});
});
d3.selectAll(".myGroup")
这么做会导致循环体内的this
与你的d3.select(this)
的结果相同。 - Steekatsee.style()
获取变换平移集?我需要匹配Leaflet CSS中的动画集,但使用.translate()
会导致动画不同步。 - Sebastian Thomas.style("transform")
。 - Lars Kotthoff