【发布时间】:2012-11-23 18:19:25
【问题描述】:
我正在尝试使用 d3js 为圆形项目实现拖动和缩放事件处理程序。我已经为这两个事件添加了如下所示的行为
var circle = svg.append("circle")
.attr("fill", "green")
.attr("opacity", 0.6)
.attr("cx", 100)
.attr("cy", 100)
.attr("r", 13)
.call(d3.behavior.drag().on("drag", drag))
.call(d3.behavior.zoom().on("zoom", zoom));
不缩放对象,拖动工作正常。放大/缩小对象后,拖动不起作用,但所有包含 mousedown 的事件都被捕获为“缩放”事件。
完整源代码请见http://jsfiddle.net/xTaDC/
似乎我不理解“d3.behavior”。 https://github.com/mbostock/d3/blob/master/examples/mercator/mercator-zoom-constrained.html 仅提供缩放处理程序并处理拖动和缩放。
我在这里做错了什么?
【问题讨论】:
-
您好,我也遇到了同样的问题,能否请您指出一个节点拖动、平移和缩放工作正常的工作示例?
-
d3js zoom 提供了拖动和缩放功能。缩放后,您可以 translate() 或 scale() 您的形状。见李维斯的回复。
-
具体来说,我无法在这个例子中实现节点拖动:bl.ocks.org/mbostock/3680999
标签: javascript svg zooming d3.js drag