0

左と右の div の 2 つの div があり、左の div にはツリービューが含まれ、右の div にはグリッドが含まれています。アイテムをグリッドからツリービューにドラッグできます。ツリービューには、ノードにカーソルを合わせるとツリービューを展開するコードがあります。

ツリーが展開すると、ツリービューのサイズが原因でスクロールバーが表示されます - 完全に展開されたツリービューにアイテムをドラッグすると、一番下までドラッグできません。問題は、スクロールバーをドラッグするとスクロールしないので、現在スクロールバーを使用して表示する必要があるアイテムはすべて、ツリービューを下にドラッグしてそれらのアイテムを表示することはできません。

左の div には次のものがあります。

{
    display: inline-block;
    width: 350px;
    height: 800px;
    float: left;
    overflow: auto;
}

どんなアドバイスも素晴らしいでしょう。

4

1 に答える 1

0

ユーザーは、マウス ホイールを使用してスクロールできます。ウィジェットを設計する人として、ホットスポット (mousemove イベントにバインドされた javascript を含む div) をツリーの上下数ピクセルの高さに追加することをお勧めします。mousemove イベントで、ツリーを上下にスクロールします (どのホットスポットがホバーされているかによって異なります)。ユーザーは、マウスをホットスポット上で小刻みに動かしてツリーをスクロールできます。

ドラッグされているオブジェクトが mousemove イベントをインターセプトする場合 (ほとんどの場合)、オブジェクトがツリーの上または下にドラッグされているかどうかを確認するコードを追加し、それに応じてツリーを (適切な速度で) スクロールする必要があります。そのコードは、マウスがどこにあるかを知ることができる要素 (おそらく body 要素) にある必要があります。

于 2012-06-01T11:38:45.977 に答える