Javascript d3树形图-限制缩放、平移

Javascript d3树形图-限制缩放、平移,javascript,d3.js,Javascript,D3.js,我有d3v4树形图。我应该能够缩放和平移树,具有平移/缩放限制 缩放和平移效果使用。使用scaleExtent限制缩放 svg.call(d3.zoom().on('zoom',()=>{ g、 attr('transform',d3.event.transform) }) .scaleExtent([0.5,3]) 但无法限制平移(拖动) 高度和宽度根据节点数动态计算 this.svg.call(d3.zoom().on('zoom', () => { const sca

我有d3v4树形图。我应该能够缩放和平移树,具有平移/缩放限制

缩放和平移效果使用。使用
scaleExtent
限制缩放

svg.call(d3.zoom().on('zoom',()=>{
g、 attr('transform',d3.event.transform)
})
.scaleExtent([0.5,3])

但无法限制平移(拖动)

高度和宽度根据节点数动态计算

this.svg.call(d3.zoom().on('zoom', () => {
        const scale = d3.event.scale;
        d3.event.transform.y = (height / 2);
        d3.event.transform.x = Math.min(d3.event.transform.x, 5);
        d3.event.transform.x = Math.max(d3.event.transform.x, (1 - d3.event.transform.k) * width );


        // I have tried this but couldn't able to drag backwards
        this.wrapperG.attr("transform", d3.event.transform.toString().replace(/scale\((.*?)\)/) + "scale(" + scale + ")");
        })
        .scaleExtent([0.5, 3]));
我想听听能让这项工作顺利进行的建议,
提前谢谢

您是否尝试过
translateExtent
@GerardoFurtado是的,我试过像这样
.translateExtent([[-width,-height],[width,height]])
,但放大和缩小时,它并没有按预期工作