gpt4 book ai didi

svg - D3,检索元素的x位置并应用多次变换

转载 作者:行者123 更新时间:2023-12-04 05:18:05 26 4
gpt4 key购买 nike

使用D3.js,我希望从组的当前位置开始多次转换xgroup(例如,单击按钮会导致每次单击都发生转换)。问题是我无法检索该组的x,即使找到它,也找不到任何内置函数可以让我从其当前x开始更改该组的x。我缺少重要的东西吗?非常奇怪,我无法将元素的x添加到SVG“舞台”中。

我的代码如下(为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)");

}

});

});

最佳答案

获取和更改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];

关于svg - D3,检索<g>元素的x位置并应用多次变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23275627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com