3

ドラッグ可能なものがその境界の外側にドラッグされたときに、コンテナdivを左右に拡張する良い方法はありますか?

右または下にドラッグすると、コンテナdivが適切に拡張され、必要に応じてスクロールバーが表示されます。ただし、左または上に移動すると、ドラッグ可能なアイテムの上部/左側の位置が負になるため、コンテナは拡張されません。

これは、既存のドラッグ動作を示すフィドルです:http: //jsfiddle.net/NPC42/Un23w/1/ですが、これは公式のjQueryUIデモ(http://jqueryui.com/demos/draggable/)でも見ることができます。 #デフォルト)。

上/左にも拡大できるようにしたいと思います:)

ブルートフォースアプローチは次のようになります。

  1. コンテナdiv上のすべてのオブジェクトの位置を、負の上下が不要になるようにリセットします(ドラッグされているオブジェクトを含む)。
  2. スクロール位置を変更して、オブジェクトがまだその場にあるように見せます。

しかし、コンテナ内の多くのオブジェクトでは、これにより多くのちらつきが発生したり、速度が低下したりする可能性があるため、その方向に進みたくありません。どんな提案でも大歓迎です!

4

1 に答える 1

1

問題は、すべての html 要素の左上隅に絶対 (0,0) 原点座標があることです。その方向にドラッグすると、ドラッグ可能オブジェクトの座標が負になります。ただし、スクロールバーは負になることはできず、サイズは正の方向にしか拡大できません。

(0,0) の下にドラッグすると負の方向に調整できるカスタム スクロールバー ウィジェットを想像できます。また、コンテナを別のコンテナの中に入れて、内側のコンテナを移動させて、その中のすべてのオブジェクトを個別に移動する必要がないようにしてください。負のスクロールオフセットを持つのはちょっと変なので、存在するものは知りません。

于 2012-08-21T17:45:28.710 に答える