可拖动的容器滚动向左或向上移动

时间:2012-04-30 14:54:23

标签: jquery-ui scroll jquery-ui-draggable

是否有一种好方法可以在将拖拽拖到边界之外时将容器div展开到左侧和顶部?

当您向右或向下拖动时,容器div已正确扩展,并且滚动条会根据需要显示。然而,向左或向上移动意味着可拖动项目具有负上/左位置,因此容器不会扩展。

这是一个演示现有拖动行为的小提琴:http://jsfiddle.net/NPC42/Un23w/1/,但这也可以在官方jQueryUI演示中看到(http://jqueryui.com/demos/draggable/#default).

我希望能够扩展到顶部/左侧:)

蛮力的方法是:

  1. 将容器div上的所有对象位置重置为不需要负顶部/左侧(包括被拖动的对象)。
  2. 更改滚动位置,使其看起来好像物体仍在其位置上。
  3. 但对于容器中的许多物体,这可能会导致大量闪烁,甚至减速,所以我真的不想朝那个方向前进。欢迎任何建议!

1 个答案:

答案 0 :(得分:1)

问题是每个html元素在左上角都有一个绝对(0,0)原点坐标。当您沿该方向拖动时,可拖动的坐标变为负值。然而,滚动条不能变为负数,它们的大小只能朝正方向增长。

我可以想象一个自定义滚动条小部件,当您向下拖动(0,0)时可以向负方向调整。还可以尝试在另一个容器内部放置一个容器,使其内部移动,以便其中的所有对象不必单独移动。我不知道有任何存在,因为有一个负滚动偏移会有点奇怪。