我正在使用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重新编码。
答案 0 :(得分:4)
事实证明,只使用jsPlumb.repaintEverything();重新绘制正确位置的线条。 jsPlumb.repaint()似乎用于重新绘制特定元素的行。例如,jsPlumb.repaint('div_id_goes_here');
答案 1 :(得分:2)
你的问题/答案帮助了我。让我用我使用的代码扩展它:
$('#container').scroll(
function(){
jsPlumb.repaintEverything();
}
)
这将导致在滚动容器时重新绘制连接。在IE上,它有一点延迟,具体取决于场景(子节点移动然后连接移动)。