v4中的D3边界框

时间:2016-09-22 14:11:16

标签: d3.js zooming bounding-box panning

我们怎么能在d3的第4版中做这样的事情:     http://jsfiddle.net/d3wxP/1/ 因为某些翻译或比例不存在:

function move() {

var t = d3.event.translate,       s = d3.event.scale;

t [0] = Math.max(0,Math.min(t [0],width-s * 50));   t [1] = Math.max(0,Math.min(t [1],height - s * 50));

svg.attr(“transform”,“translate(”+ t +“)scale(”+ d3.event.scale +“)”); }

1 个答案:

答案 0 :(得分:0)

您需要通过以下方式进行更改:

function move() {
  var t = d3.event.transform,
      s = d3.event.transform.k;

  t.x = Math.max(0, Math.min(t.x, width - s*50));
  t.y = Math.max(0, Math.min(t.y, height - s*50));

  svg.attr("transform", t);
}

请参阅http://jsfiddle.net/d3wxP/18/

关于该文件的文档:https://github.com/d3/d3-zoom#zoom-transforms(请注意,在某些时候它可能不向后兼容)。