【发布时间】:2021-09-15 04:49:16
【问题描述】:
我正在使用 d3 版本 5 进行树形布局。我需要在树上添加缩放、平移、拖动和重置。我使用了以下内容:
this.svg = d3.select(this.chartContainer.nativeElement).append("svg")
.attr("width", this.width + this.margin.right + this.margin.left)
.attr("height", this.height + this.margin.top + this.margin.bottom)
.call(d3.zoom().on("zoom", ()=> {
this.svg.attr("transform", d3.event.transform)
}))
.append("g")
.attr("transform", "translate("
+ this.margin.left + "," + this.margin.top + ")");
我可以使用鼠标滚轮进行缩放,拖放到树上。我无法用两根手指进行缩放。在重置时,它会恢复到原始状态。但是当我点击任何地方树移动到旧位置。我正在使用以下内容进行重置:
this.svg.transition().duration(750).attr("transform", d3.zoomIdentity.translate(this.margin.left, this.margin.top));
【问题讨论】: