我正在使用jointJS来创建图表。该库创建了悬停时的链接,显示箭头以移动/重新连接它们。 我想将它们改成另一种颜色的小圆圈。
由于箭头是默认设计,我不知道应该显示哪些代码 - 正是这是我的问题:如何更改默认设置/ SVG布局?
答案 0 :(得分:3)
我重新定义了默认链接" arrowhead"在我目前的项目中。这是图表代码:
var paper = new joint.dia.Paper({
el: $('#paper'),
perpendicularLinks: true,
gridSize: 1,
model: graph,
//snapLinks: { radius: 5 },
defaultLink: new joint.shapes.devs.Link({
attrs: {
'.marker-target': {
d: arrowheadShape
}
}
})
});
然后这是保存实际形状定义的变量:
var arrowheadShape = 'M 10 0 L 0 5 L 10 10 z';
在这种情况下,我只是调整默认三角形的大小。您可以将其替换为您想要的任意SVG路径。
ON EDIT:我相信我误解了你的问题。我的方法重新定义了链接头部的默认形状,而不是当您拖动链接末尾时显示的其他图标。我的不好,抱歉。
答案 1 :(得分:2)
您似乎必须使用joint.dia.Link
类。
它有一个名为arrowheadMarkup的内部属性,它显然负责重新制作箭头标记(line 5828 @ joint.js v0.9.5
)
arrowheadMarkup: [
'<g class="marker-arrowhead-group marker-arrowhead-group-<%= end %>">',
'<path class="marker-arrowhead" end="<%= end %>" d="M 26 0 L 0 13 L 26 26 z" />',
'</g>'
].join('')
尝试将path.marker-arrowhead替换为您希望在子类中看作箭头的任何SVG代码。
可能产生的代码看起来像这样:
var myPrettyLink = joint.dia.Link.extend({
...
arrowheadMarkup: [
'<g class="marker-arrowhead-group marker-arrowhead-group-<%= end %>">',
'<circle class="marker-arrowhead" cx="20" cy="20" r="15"></circle>',
'</g>'
].join('')
...
});