d3.js:带限制的平移

5

我正在制作一个具有平移功能的基础线性图表。

我成功地通过限制 d3.event.translate 的值来限制图表元素可拖动的范围:

var tx = Math.max(0, d3.event.translate[0]),
    ty = Math.min(0, d3.event.translate[1]);

现在我需要做的是相应地限制x和y轴。请看下面的示例: http://jsfiddle.net/Q2SWV/ 当向下或向左拖动时,图表上的柱形受到0的限制,但x和y轴没有。有什么想法来解决坐标轴的问题吗?
1个回答

5

你已经非常接近了,但你错过了最后一步——使用更新的平移坐标来更新 zoom 行为。这将解决你的问题,因为两个轴都使用了 zoom。在确定 txty 后,请添加以下内容:

zoom.translate([tx, ty]);

这将应用于您的轴限制。可在此处查看更新的演示:http://jsfiddle.net/mdml/nZD3E/

我知道这是很久以前的事情了,但这只有在两个方向上有限制,即x[0],y[0],我该如何做到四面八方都可以?例如,我只能在y方向上在0和100之间移动,x也是一样的吗? - thatOneGuy
此示例不起作用(不知道是否由于更高版本的d3引起)。 - jarandaf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接