我使用D3 Drag拖动画布周围的一些圆圈。然后我让他们有固定的位置。但是,我希望将它们与我创建的另一个svg元素保持距离:
node.attr("transform", function(d,i) { return "translate ("+ arc[i].centroid() +")" +"translate("+d.x+","+d.y+")"; })
拖动时,直到多次点击鼠标和鼠标才会拖动圆圈。通常远离实际的鼠标手。
我知道我可以摆脱质心,但想知道解决这个问题。
答案 0 :(得分:0)
第一次拖拽尝试的跳跃是因为第57行的转换与下一次的转换不匹配。为了避免跳跃,使第57和76行匹配。将57更改为:
d3.select(this).attr("transform", "translate ("+ arc[i].centroid() +")" +"translate("+d.x+","+d.y+")");
为了使其工作,我必须在第52行传递d和i作为参数:
.on("drag", function(d, i) {