jsPlumb 锚点位置

Posted

技术标签:

【中文标题】jsPlumb 锚点位置【英文标题】:jsPlumb anchors positions 【发布时间】:2014-10-14 22:48:59 【问题描述】:

我正在尝试自定义 jsPlumb 以绘制图形,所有箭头都向下,连接源来自容器底部,连接目标位于页面下方某个位置的容器顶部。 我用:

instance.connect( source:"sourceDiv", target:"targetDiv" , anchors:["Bottom", "Top"] );

除了一个小问题,它工作正常......

所有箭头都将从底部的中间开始,并终止于顶部的中间

当有许多箭头进出同一个容器时,我希望锚点均匀分布沿顶部和底部。

从文档中,我尝试了以下操作:

instance.makeSource("sourceDiv",  anchor: "Continuous" );
instance.makeTarget("targetDiv",  anchor: "Continuous" );

或(使用 jQuery):

instance.makeSource($("#sourceDiv"),  anchor: "Continuous" );
instance.makeTarget($("#targetDiv"),  anchor: "Continuous" );

但显然语法不正确...得到如下错误:

jsPlumb: fire failed for event connection : TypeError: info.connection.getOverlay(...) is null

需要帮助来解决这个问题。

【问题讨论】:

【参考方案1】:

锚点与端点相关联。连接元素时,会自动创建端点,但创建元素源和目标时,除非创建连接,否则不会创建端点,因此代码会失败。

https://jsplumbtoolkit.com/doc/anchors.html

而不是将元素 source & target, addEndpoint 设置为该元素,如下所示:

jsPlumb.addEndpoint("someDiv", 
    endpoint:"Dot",
    isSource:true,
    isTarget:false,
    anchor:[ "Perimeter",  shape:"Square", anchorCount:150 ]
);

【讨论】:

嗯...那么我应该按什么顺序做事呢?现在,我用 html-divs 创建了元素,然后尝试修改它们的锚点位置,然后 .connect() 它们。正确的顺序是什么?我还应该使用 .connect() 吗?还是其他方式? (不容易掌握这个框架的概念......我想文档中的一些图片插图会有所帮助......) jsPlumb 非常灵活,允许直接在元素和外部端点之间创建连接。我个人更喜欢这个example,这里是[代码](jsplumbtoolkit.com/demo/flowchart/demo.js)。

以上是关于jsPlumb 锚点位置的主要内容,如果未能解决你的问题,请参考以下文章

jsPlumb - 如何获取锚点的位置

UIPopoverController 锚点位置

微信小程序 - 实现页面跳转,跳转到指定锚点位置

jQuery在页面加载时移动到锚点位置

jQuery在页面加载时移动到锚点位置

jQuery在页面加载时移动到锚点位置