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 回答