2012-04-30 107 views
3

是否有一種好的方法,當拖動到其邊界之外時,將容器div展開到左側和頂部?可拖動的容器滾動移動到左側或頂部

當您向右或向下拖動容器div正確擴展時,會根據需要顯示滾動條。然而,向左或向上移動意味着可拖動的項目具有負的頂部/左側位置,所以容器不被展開。

下面是演示現有拖動行爲的小提琴:http://jsfiddle.net/NPC42/Un23w/1/,但這也可以在官方的jQueryUI演示中看到(http://jqueryui.com/demos/draggable/#default)。

我希望能夠擴展到頂部/左太:)

蠻力的方法是:

  1. 重置對象的所有位置上的div容器因此不需要負頂/左(包括被拖動的對象)。
  2. 更改滾動位置,使其看起來好像對象仍在其位置上。

但是,對於容器中的許多物體,這可能會導致大量的閃爍甚至放緩,所以我並不真的想朝那個方向前進。歡迎任何建議!

回答

1

問題是,每個html元素都有一個絕對(0,0)原點座標在左上角。在該方向上拖動時,可拖動的座標變爲負值。然而,滾動條不能變成負值,它們的大小隻能朝着正向增長。

我可以想象一個自定義滾動條小部件,當您拖動到下面(0,0)時,可以調整負方向。也可以嘗試在另一個容器內部使用內部容器來移動容器,以便它內部的所有對象都不必單獨移動。我不知道有任何存在,因爲它有一個負面的滾動偏移有點奇怪。