jsPlumb处理可滚动div容器中的元素

时间:2012-04-30 03:08:49

标签: javascript jsplumb

我正在使用jsPlumb来连接一堆div(很像流程图)。所有div都包含在一个可滚动的父div中。类似于下面的代码,但在容器div中有更多的div。

<div style="height:500px;width:500px;overflow:auto" id="container">
   <div id="node1"></div>
   <div id="node2"></div>
   <div id="node3"></div>
   <div id="node4"></div>
   <div id="node5"></div>
</div>

我的问题是,如果我滚动div,jsPlumb生成的连接线就会保持原位,不要滚动它们应该连接的div。我尝试过使用jsPlumb.repaint()但仍然没有运气。看来jsPlumb没有考虑到caontainer div的滚动偏移量。有办法解决这个问题吗?我真的想避免不得不将容器div中连接的div移动到正文中,因为这会引起一些非常讨厌的css / html重新编码。

2 个答案:

答案 0 :(得分:4)

事实证明,只使用jsPlumb.repaintEverything();重新绘制正确位置的线条。 jsPlumb.repaint()似乎用于重新绘制特定元素的行。例如,jsPlumb.repaint('div_id_goes_here');

答案 1 :(得分:2)

你的问题/答案帮助了我。让我用我使用的代码扩展它:

    $('#container').scroll(
                function(){
                    jsPlumb.repaintEverything();
                }
            )

这将导致在滚动容器时重新绘制连接。在IE上,它有一点延迟,具体取决于场景(子节点移动然后连接移动)。