4

jsPlumb を使用して、多数の div を接続しています (フローチャートのように)。すべての div は、スクロール可能な 1 つの親 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 から body に移動する必要がないようにしたいのは、これには非常に面倒な css/html の再コーディングが必要になるためです。

4

2 に答える 2

4

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

于 2012-05-02T23:48:30.030 に答える
2

あなたの質問/回答は私を助けました。私が使用したコードでそれを拡張させてください:

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

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

于 2013-04-09T19:06:44.680 に答える