移动节点时如何停止平移?限制缩放? D3

时间:2014-12-01 10:20:20

标签: javascript d3.js

我在力导向图中添加了一个平移/缩放元素。它只适用于我在节点上的情况。

我希望发生的是当我点击一个节点时,平移停止,所以我可以移动节点。但是当我在'背景'时,我可以移动图表。

另外,我需要能够使用鼠标滚轮在图形上一直放大或缩小图像,但是还有缩放边界?为了解决这个问题,我必须以某种方式限制规模吗?

__________________________________________________固定

我已经通过在别处调用redraw()来对其进行排序。我有我的'SVG'然后我有我的'内在'ontop。所以我在SVG上调用重绘,现在只有当我离开节点时它才有效,这比仅仅在节点上工作更好。

我认为这是因为当我在'内部'中调用它时,因为我的'内部'只是图形,鼠标位置未被识别为处于'内部'。因此,当我将它移动到它后面的层时,'SVG'它工作正常,因为我的SVG是一个'画布',其中所有内容都在。所以鼠标位置现在与SVG交互,因此调用'重绘'。

我说的是对的吗?

1 个答案:

答案 0 :(得分:0)

如果您希望缩放仅在背景上触发,则可以创建“rect”元素并从该rect元素调用缩放行为。如果在附加任何其他内容(或插入其下方)之前将此元素附加到SVG画布,那么当您单击并拖动背景(矩形)时,您将进行平移和缩放,但是当您单击并拖动上面绘制的任何内容时,你得到与这些元素相关的行为。

rect应该具有SVG画布的大小和宽度以及填充不透明度为0,以使其不可见。

相关问题