我有一个有效的脚本:
d3.selectAll(".info_Services").attr("transform", "translate(100, 100)")
另一个没有:
d3.selectAll(".info_Services").attr("transform", function(d){ return "translate("+d.y+", 100)" })
确实如果告诉我d
在函数中未定义。我想为每个节点自定义转换。 “变换”有什么特别之处吗?如何捕获每个文本的y位置(info_Services是SVG text
s。)
答案 0 :(得分:0)
如错误所示,代码中未定义d
。但是,如果您已经绘制了svg
元素,则可以像这样访问transformation
。
d3.selectAll(".info_Services").attr("transform", function(){
var currentElem = d3.seect(this);
var tx = d3.transform(currentElem.attr('transform')).translate;
var transX = tx[0];
var transY = tx[y];
//return "translate("+d.y+", 100)" }
);
但是如果要在绘制元素时调整转换,则必须先绑定数据。
d3.selectAll(".info_Services").data(myData).enter().append('<yourElement>')attr('class','info_Services').attr("transform", function(d){
return "translate("+d.y+", 100)" }
);