放置d3画笔调整大小组

时间:2015-06-22 21:36:10

标签: svg d3.js brush

当刷子范围相对较小时,我正在处理一个问题。

现在,在画笔中创建的组(g.resize [n,s,e,w等])通过一些内部动作放置到d3画笔。

<g class="resize n" transform="translate(111.77999877929688,120.05999755859375)" style="cursor: ns-resize;">
    <rect y="0" width="68.94" height="6" x="0" style="visibility: hidden;">
    </rect>
</g>

我的问题是,对于水平边(北部和南部),该组被放置在范围的边缘下方,而对于垂直边(东部和西部),该组被放置在边缘的右侧。该组使用transform将其自身置于svg中。这意味着我的调整大小手柄位于北边和西边的范围内。因此,在小范围内,调整大小操作会干扰我希望在范围上发生的单击操作。我想弄清楚如何确保调整大小组总是在范围之外绘制。

我不想在画笔末端添加调整(也可能在画笔移动时)以重新定位组并调整它的变换。在本机d3代码中是否有一种方法可以控制它们的放置方式?

另外,如何控制此矩形的高度为6?

以外的其他值?

1 个答案:

答案 0 :(得分:0)

假设有类似的东西:

var brushg = svg.append("g").attr("class", "brush");
var brush = d3.svg.brush();
brushg.call(this.brush);

以下是渲染画笔时可以执行的操作:

brushg.selectAll('.resize')
      .select('rect')
      .attr('height', '100');

其中修改了调整元素大小的高度。