【问题标题】:jsPlumb positioning the boxes automaticallyjsPlumb自动定位盒子
【发布时间】:2017-07-04 14:52:39
【问题描述】:

我是 jsPlumb 的新手,我想知道是否有办法让框/div(相互连接的框)自动定位在页面中。我有很多“实体”将从数据库中动态获取,因此“手动”定位在这里真的不是一个选项。只要它们不相互重叠,它们在哪里都没有关系。

从我搜索到现在,jsPlumb 没有关于这个问题的文档。我不确定如何正确定位我的盒子。

从下面的例子中你可以看到,盒子的定位是通过为每个盒子编写一堆 CSS 来手动处理的——我绝对不需要:

#window1 { top:30em;left:10em;}
#window2 { top:-2em; left:36em;}
#window3 { top:20em;left:45em; }
#window4 { top:17em; left:22em;}

示例:http://www.lively-kernel.org/repository/webwerkstatt/users/tmohr/libs/jsPlumb/demo/jquery/flowchartConnectorsDemo.html#

JSFiddle:http://jsfiddle.net/evycd00u/3

【问题讨论】:

    标签: javascript css jsplumb


    【解决方案1】:

    位置是 CSS。因此,您可以使用 Javascript 或 JQuery 使用某些过程来设置框的位置:

    // e.g. this uses JQuery
    for (var i=0; i<4; i++) {
        $("#window"+i).css({top: 50+80*i, left: 200});
    }
    

    【讨论】:

    • 这不应该是 jsPlumb 的一部分吗?我的意思是,如果我自己做定位,我可以完全跳过图书馆......不过非常感谢你的回答!
    • @aborted JSPlumb 的主要优点是维护连接器 - 您可以将端点放在元素上并让它绘制连接/管理交互。元素只是 div,这意味着您可以直接在 HTML/CSS/JS 中处理它们。
    • 我刚刚尝试按照您的建议应用解决方案,但定位变得混乱,连接器找不到目标。它导致连接器从正确的位置开始,但无处可去。另外,我希望定位看起来有点像上面的链接。非常感谢您的帮助,因为我真的不熟悉这个库。
    • @Aborted 我们需要更多代码来找出原因。 EndPoints(连接器所在的位置)相对于它们所属的元素进行定位,但也许有些东西把它们放在了错误的位置。此外,如果点移动或窗口大小改变,您可能需要重新绘制元素。如果您遇到困难,请在 JSFiddle 中分享您的工作。
    • 你去:jsfiddle.net/evycd00u/3 - 感谢您的帮助!现在我一直在尝试使用我在问题中输入的 URL 中的 CSS 并使其看起来与此相似,但我真的坚持这种定位。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    相关资源
    最近更新 更多