我希望在节点内部有一个形状,这部分地会超出节点的边界。含义,-10px父元素的顶部和左侧。
现在我在节点内部有一个矩形和一个圆圈,它看起来像这样:
如您所见,由于节点的大小已扩展,因此链接无法正确连接。我希望使用css术语的圆圈绝对定位,换句话说,我不希望它影响节点大小调整节点(显然,在此示例中不可见)。
我尝试了以下解决方案:
设置节点的宽度和高度。然后它裁剪圆圈,因为它超出了边界。
使用节点中的fromSpot和toSpot属性将链接连接到节点的中心。显然他们被布局覆盖了,我无法弄清楚如何禁用isLayoutPositioned
使用装饰品,但我根本不明白我应该如何使用它们。
搜索我是否可以以某种方式设置元素的溢出可见,或以某种方式影响边界,或类似的东西,但没有找到任何对我有用的东西。
这里适当的解决方案是什么?
答案 0 :(得分:2)
将节点设为“Spot”面板,通过为其分配 GraphObject.portId ,使节点的“main”元素成为“端口”,并定位通过设置 GraphObject.alignment 属性,相对于“main”元素的红色圆圈,在本例中为go.Spot.TopLeft
。我也猜测分配 Node.locationObjectName 就是你想要的。
myDiagram.nodeTemplate =
$(go.Node, "Spot",
{ locationSpot: go.Spot.Center, locationObjectName: "BODY" },
$(go.Shape,
{ name: "BODY", width: 50, height: 50,
fill: "lightgreen", strokeWidth: 0,
portId: "" }),
$(go.Shape, "Circle",
{ alignment: go.Spot.TopLeft, width: 20, height: 20,
fill: "transparent", stroke: "red" })
);
请在http://gojs.net/latest/intro/nodes.html了解详情。我建议不仅要阅读“入门”页面http://gojs.net/learn,还要阅读适用于您要创建的应用类型的所有“简介”页面http://gojs.net/intro。
特别是,这些应该是有用的: