javascript - 是否可以仅在 d3 js 中为树布局的子节点绘制虚线链接

标签 javascript d3.js

是否可以只为子节点绘制虚线链接。父节点到其子节点应该是规则的连续链接

    a   b
    !     !  ->dashed links
    !     !
     c    d
      |  | ->continues links
       a

最佳答案

这是可能的。看看这个直播example .截图在这里:

enter image description here

我创建了两种样式,一种用于连续,另一种用于虚线链接:

.link_continuous {
    fill: none;
    stroke: #ff0000;
    stroke-width: 1.5px;
}
.link_dashed {
    fill: none;
    stroke: #ff0000;
    stroke-width: 1.5px;
    stroke-dasharray: 20,10,5,5,5,10;
}

JavaScript 中的这一行决定了应该应用什么样式:

.attr("class", function (d) { return (d.source != root) ? "link_dashed" : "link_continuous" ; })

我选择了有点奢侈的破折号风格,但你当然可以改变它。在 CSS 文件中执行此操作的好处在于您可以更轻松地进行实验。

此外,此页面非常适合学习样式化 SVG 路径:

SVG Path Styling

以类似的方式,您也可以更改节点样式。希望这会有所帮助。

关于javascript - 是否可以仅在 d3 js 中为树布局的子节点绘制虚线链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20783718/

相关文章:

javascript - Node.js错误: Each then() should return a value or throw?

javascript - 如何在html中更改文本框的输入语言?

javascript - 由于 json 的循环结构,我不断获得状态 500

d3.js - AngularJS 应用程序中的 D3

javascript - d3自定义日期格式

javascript - 根据边缘厚度缩放箭头,并使其接触大小不同的节点的外边缘

javascript - 是否可以将诸如 Geolocation.watchPosition() 之类的函数包装在 Promise 中?

javascript - 无法提醒 javascript 变量

javascript - 将外部数据 (.tsv) 加载到 d3.js 中

javascript - d3 事件未触发