【发布时间】:2014-06-12 15:50:29
【问题描述】:
我有一个由 d3 制作的图表,dagre-d3 放在它上面用于绘制有向图。这给了我渲染图表的期望:
要编辑构建图表的数据,每个元素都是可点击的。这对于使用标签渲染边缘的情况很好,但它们并不总是有标签,导致未标记的边缘很难单击以进行编辑。这些分配给边缘的样式是:
#visitGraph .edgePath {
cursor: pointer;
stroke: #333;
stroke-width: 2px;
fill: none;
padding: 10px;
}
渲染的 svg 是:
<g class="edgePath enter">
<path marker-end="url(#arrowhead)" d="M198.5,121L198,124.9C198.4,128.8,198.4,136.6,198.4,144.5C198.4,152.3,198.4,160.1,198.4,164.0L198.5,168" style="opacity: 1">
</path>
</g>
如果不更改 dagre-d3 中的代码以在线条上添加过度绘制,就像我在其他 SVG 建议中看到的那样,我可以做些什么来增加这些可点击元素周围的区域?我已经尝试过padding、margin 以及样式中pointer-events 的各种值,但均无济于事。
【问题讨论】:
-
您可以增加笔画宽度。不过,这会使线条变宽。
-
我试过了,但是当边缘很容易点击时,它看起来很丑。
-
我能看到的唯一选择是拥有某种不可见的虚拟元素,但更大的点击量。
-
如果我没有看到其他建议,我可能会为 dagre 打一个补丁并提出拉取请求。我无法想象我会是唯一使用该库并需要此功能的人。