解决D3.zoom()缩放和平移初始化时图形位置会跳跃的问题(v6版本)

先奉上有问题的代码

 //在页面中添加svg 支持拖拽和缩放
  var svg = d3.select("#body").append("svg").attr("width", 1000).attr("height", 1000)
    .call(d3.zoom().scaleExtent([1, 3]).on("zoom",
      function redraw(event: any) {
        svg.attr("transform", event.transform);
      }
    )).append("g").attr("transform", "translate(" + 350 + "," + 20 + ")")

解决方案 :在后面添加 .append(“g”),缩放的时候重新绘制

var svg = d3.select("#body").append("svg").attr("width", 1000).attr("height", 1000)
    .call(d3.zoom().scaleExtent([1, 3]).on("zoom",
      function redraw(event: any) {
        svg.attr("transform", event.transform);
      }
    )).append("g").attr("transform", "translate(" + 350 + "," + 20 + ")").append("g");

在老版本中是通过zomm.translate([350,20])解决上述问题的
D3实现组织型tree结构的完整代码 https://blog.csdn.net/qq_44621394/article/details/119392957
包含拖拽、缩放、平移、折叠、异步加载节点自定义渲染等功能

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值