2012-04-30 18 views
4

jsPlumbを使用して複数のdivを接続しています(フローチャートのようなものです)。すべてのdivはスクロール可能な1つの親divに含まれています。以下のコードのように並べ替えますが、コンテナdiv内にはdivがさらにあります。jsPlumbスクロール可能な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は、カバレッジdivのスクロールオフセットを考慮していないようです。これを修正する方法はありますか?私は実際には、これはいくつかの非常に迷惑なCSS/HTMLのコード化を伴うだろうので、コンテナのdivのボディに接続されているdivを移動することを避けるためにしたい。

答えて

4

jsPlumb.repaintEverything()を使用すると分かります。線を正しい位置に再描画します。 jsPlumb.repaint()は、特定の要素の行を再描画するためのものです。たとえば、jsPlumb.repaint( 'div_id_goes_here');

2

あなたの質問/回答は私を助けました。

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

これにより、コンテナをスクロールするときに接続が再描画されます。 IEでは、シナリオ(子ノードが移動してから接続が移動する)に応じて少し遅延があります。

+0

この手法は、残念ながらjsPlumbの最新バージョンでは動作しません。誰にも回避策がありますか? –

関連する問題