D3.Drag.Behaviour不能正常工作

时间:2013-04-21 20:13:41

标签: javascript d3.js

我使用D3 Drag拖动画布周围的一些圆圈。然后我让他们有固定的位置。但是,我希望将它们与我创建的另一个svg元素保持距离:

 node.attr("transform", function(d,i) { return "translate ("+ arc[i].centroid() +")" +"translate("+d.x+","+d.y+")"; })

拖动时,直到多次点击鼠标和鼠标才会拖动圆圈。通常远离实际的鼠标手。

我知道我可以摆脱质心,但想知道解决这个问题。

http://jsfiddle.net/Zc4z9/10/

1 个答案:

答案 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) {

工作小提琴:http://jsfiddle.net/Zc4z9/11/