添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

更新时间:2019/6/28 下午5:45:42

更新说明: 点击节点居中


更新时间:2019/4/30 下午6:19:17

更新说明: 支持反方向 (四处,nodeEnter nodeUpdate nodeExit diagonal)

弹窗 兼容ie10 但是好像不兼容edge 没有亲测过,电脑没有ie。 (offsetX/offsetY 换成 layerX/layerY)

点击节点 以节点位置展示 不会失去焦点。(click 事件中 最后两句注释)


可以 qq 联系 279470138 d3.js 只弄过这个树状图 是 v3 关于兼容问题,我没看

采用的是本地的json 文件,调接口的没有整理,就没有上传。

https://blog.csdn.net/czy279470138/article/details/88419831
PREVIOUS:
NEXT:
如果需要在vue react 和 angular 中引入的话 我这个是d3 3.5.17版本的 npm install [email protected] yarn add [email protected] yarn 我没试过,如果有问题可以试试制定版本安装 yarn add [email protected] // 点击节点位置居中 不受缩放影响
const a = zoom.scale()
svg.attr('transform', 'translate(' + (width / 3 - d.y0 * a) + ', ' + (height / 2 - d.x0 * a) + ') scale(' + a + ')')
zoom.translate([(width / 3 - d.y0 * a), (height / 2 - d.x0 * a)]).scale(a)      .attr("id", "resolved")      .attr("markerUnits", "userSpaceOnUse")      .attr("viewBox", "0 -5 10 10") //坐标系的区域      .attr("refX", 0) //箭头坐标      .attr("refY", -1)      .attr("markerWidth", 12) //标识的大小      .attr("markerHeight", 12)      .attr("orient", "auto") //绘制方向,可设定为:auto(自动确认方向)和 角度值      .attr("stroke-width", 2) //箭头宽度      .append("path")      .attr("d", "M0,-5L10,0L0,5") //箭头的路径      .attr('fill', '#000000'); //箭头颜色  // (2-8) 增加新连接  link.enter().("path", "g")      .attr("class", "link")      .attr("d", function(d) {          var o = {              x: source.x0,              y: source.y0          return diagonal({              source: o,              target: o      .attr("marker-end", "url(#resolved)"); // path 引入箭头  第一个圆点也会移位,  if 判断一下      .attr('cx', function(d, i) {          console.log(i)          if (i !== 0) {              return 15      })

转自qq群中一位大佬的分享

// 点击节点 以当前节点位置居中 位置可以调试
// svg.attr('transform', 'translate(' + (width / 4 - d.y0) + ', ' + (height / 2 - d.x0) + ')')
// zoom.translate([(width / 4 - d.y0), (height / 2 - d.x0)])

反方向

// svg.attr('transform', 'translate(' + (width / 4 + d.y0) + ', ' + (height / 2 - d.x0) + ')')
// zoom.translate([(width / 4 + d.y0), (height / 2 - d.x0)])
update(d); // 重新渲染     svg.attr('transform', 'translate(' + (width / 4 - d.y0) + ', ' + (height / 2 - d.x0) + ')')     zoom.translate([(width / 4 - d.y0), (height / 2 - d.x0)])