Svg D3,检索a的x位置<;g>;元素并应用多重变换
使用D3.js,我想从组的当前位置开始多次变换组的Svg D3,检索a的x位置<;g>;元素并应用多重变换,svg,d3.js,transform,Svg,D3.js,Transform,使用D3.js,我想从组的当前位置开始多次变换组的x(例如,通过单击按钮a,每次点击都会导致变换)。问题是我无法检索组的x,即使我找到了它,我也找不到任何内置函数,可以让我从组当前的x开始更改组的x。我错过了什么重要的事情吗?很奇怪,我无法将元素的x添加到SVG“stage”中 我的代码如下(为Lars编辑):我按照您昨天建议的方式创建了节点(克隆它们) 获取和更改g元素的位置相对简单。例如: var g = d3.select("#myG"); // get x position var c
x
(例如,通过单击按钮a,每次点击都会导致变换)。问题是我无法检索组的x,即使我找到了它,我也找不到任何内置函数,可以让我从组当前的x
开始更改组的x
。我错过了什么重要的事情吗?很奇怪,我无法将元素的x
添加到SVG“stage”中
我的代码如下(为Lars编辑):我按照您昨天建议的方式创建了节点(克隆它们)
获取和更改
g
元素的位置相对简单。例如:
var g = d3.select("#myG");
// get x position
var currentx = d3.transform(g.attr("transform")).translate[0];
// set x position
g.attr("transform", "translate(" + (currentx + 100) + ",0)");
编辑:
如果您有一个原始DOM元素,请先用D3选择它:
var currentx = d3.transform(d3.select(this).attr("transform")).translate[0];
嗨,Lars,我更新了问题,试图更好地解释问题。Lars,非常感谢:我认为
d3.selectAll(.myGroup”)
导致循环体内部这个与你的d3的结果相同。选择(这个)
是否可以用.style()
获得转换转换集?我需要匹配传单CSS中的动画集,并使用.translate()
动画不同步。是。使用.style(“transform”)
.D3v4“已删除d3.transform方法。”
var currentx = d3.transform(d3.select(this).attr("transform")).translate[0];