jsPlumb:端点错误的位置

Posted

技术标签:

【中文标题】jsPlumb:端点错误的位置【英文标题】:jsPlumb: Endpoints wrong position 【发布时间】:2016-05-13 14:05:39 【问题描述】:

使用 Dojo,我以编程方式创建盒子并将其放置在主 div 的内部 div 中,放置盒子后我使用 addEndpoint() 将端点添加到我的盒子,问题是端点没有放置在正确的位置. 这是我的代码

<div data-dojo-attach-point="containerNode" class="divCenter navEditorDiv" style="">
<button data-dojo-attach-event="onClick: showPopOut" data-dojo-attach-point="createNode"
        class="btn  btn-primary fa fa-plus-square position" style=""></button>

<div data-dojo-attach-point="navigationNode"></div> </div>

以上代码是我的 html

jsplumbInstance: function () 
        if (!this._instance) 
            this._instance = jsPlumb.getInstance(
                // default drag options
                DragOptions: cursor: 'pointer', zIndex: 2000,
                // the overlays to decorate each connection with.  note that the label overlay uses a function to generate the label text; in this
                // case it returns the 'labelText' member that we set on each connection in the 'init' method below.
                ConnectionOverlays: [
                    ["Arrow", 
                        location: 1,
                        visible: true,
                        id: "ARROW",
                        /* events:
                         click:function()  alert("you clicked on the arrow overlay")
                         */
                    ],
                    ["Label", 
                        location: 0.8,
                        id: "label",
                        cssClass: "aLabel fa fa-times",
                        /*events:
                         tap:function()  jsPlumb.remove("label");
                         */
                    ]
                ],

               Container: this.navigationNode
            );

        
        return this._instance;
    ,

以上代码是我的 jsPlumb 实例,其中“Container”设置为 innerDiv dojo 附加点

 leftEndPoints: function () 
        connectorPaintStyle = 
            lineWidth: 4,
            strokeStyle: "#61B7CF",
            joinstyle: "round",
            outlineColor: "white",
            outlineWidth: 2
        ,
            // .. and this is the hover style.
            connectorHoverStyle = 
                lineWidth: 4,
                strokeStyle: "#216477",
                outlineWidth: 2,
                outlineColor: "white"
            ,
            endpointHoverStyle = 
                fillStyle: "#216477",
                strokeStyle: "#216477"
            ;
        var sourceEndpoint = 
            anchor: "RightMiddle",
            endpoint: "Dot",
            paintStyle: 
                strokeStyle: "#7AB02C",
                fillStyle: "transparent",
                radius: 7,
                lineWidth: 3
            ,
            isSource: true,
            connector: ["Flowchart", stub: [40, 60], gap: 10, cornerRadius: 5, alwaysRespectStubs: true],
            connectorStyle: connectorPaintStyle,
            hoverPaintStyle: endpointHoverStyle,
            connectorHoverStyle: connectorHoverStyle,
            deleteEndpointsOnDetach: false,
            dragOptions: ,
            maxConnections: -1,
            overlays: [
                ["Label", 
                    location: [0.5, 1.5],
                    label: "Drag",
                    cssClass: "endpointSourceLabel",
                    visible: false
                ]
            ],
        ;
        return sourceEndpoint;
    ,

以上代码是我的 jsPlumb 端点

domConstruct.place(rootWidget.boxNode, that.navigationNode);
that.jsplumbInstance().addEndpoint(rootWidget.boxNode,that.leftEndPoints());

使用 Dojo domConstruct.place 我将框放置在 innerDiv 中,并在放置后添加端点。

请帮我解决它。

错误位置的截图

预期结果截图

【问题讨论】:

【参考方案1】:

您可以为父容器设置样式 position: absolute; 来解决这个问题。

【讨论】:

就我而言,我没有通过 jsplumb setContainer 设置任何容器。只需设置容器即可解决问题。

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

jsPlumb - 如何获取锚点的位置

jsplumb.connect() 使用现有端点而不是创建新端点

拓扑图编辑器-jsplumb基本配置

jsPlumb 锚点位置

Django - PUT 端点验证器错误“wrapped_view() 缺少 1 个必需的位置参数:'request'”

jsPlumb 与 Nuxtjs 集成抛出错误文档未定义