0

我有一些拖放,当一个人将一个项目拖到一个放置区域时,我会发生的是让剩余的可拖动项移动到开放区域。例如:

{A} {1}

{B} {2}

{C} {3}

如果您将 {3} 向上拖动到 {B},它将锁定到 {B},然后 {2} 应该向下移动到 {C} 所在的位置...

任何想法如何做到这一点?ALSO* *可拖动对象必须捕捉/锁定到可放置区域。

4

1 回答 1

0

好的,所以我终于能够找到一个可行的解决方案。如果有人对此感兴趣,这就是我所做的:

首先,我创建了一堆拖放。每个可拖动对象都有一个可放置区域。然后,对于可拖动对象的定位,我创建了一个变量来存储不同的位置(基于 obj 高度和边距等。可拖动对象具有绝对位置,这是基于父 DIV 完成的。所以当我稍后获得位置时,我可以使用它们重新定位对象。

然后,我为 droppables 创建了一个 drop 函数,这样一旦一个对象被丢弃,它就会记录对象被丢弃的位置,并将其放入已经被占用的位置数组中。因此,如果我在 [步骤 2] 上放置了一些东西,并且它从顶部向下 220 像素,那么我将其记录在数组中。然后,紧接着,我检查所有的对象,看看哪些对象被丢弃了。这样我就知道我可以移动哪些物体。

现在我有了可以移动的对象和可用的位置。然后,我简单地浏览未移动的开放点和对象列表,并将它们简单地替换为开放位置。而不是试图仅在元素上重新定位。我基本上是重新定位一切,不管一开始是否很好。

我希望这可以帮助别人。

于 2013-04-15T18:32:11.230 回答