我有一些拖放,当一个人将一个项目拖到一个放置区域时,我会发生的是让剩余的可拖动项移动到开放区域。例如:
{A} {1}
{B} {2}
{C} {3}
如果您将 {3} 向上拖动到 {B},它将锁定到 {B},然后 {2} 应该向下移动到 {C} 所在的位置...
任何想法如何做到这一点?ALSO* *可拖动对象必须捕捉/锁定到可放置区域。
我有一些拖放,当一个人将一个项目拖到一个放置区域时,我会发生的是让剩余的可拖动项移动到开放区域。例如:
{A} {1}
{B} {2}
{C} {3}
如果您将 {3} 向上拖动到 {B},它将锁定到 {B},然后 {2} 应该向下移动到 {C} 所在的位置...
任何想法如何做到这一点?ALSO* *可拖动对象必须捕捉/锁定到可放置区域。
好的,所以我终于能够找到一个可行的解决方案。如果有人对此感兴趣,这就是我所做的:
首先,我创建了一堆拖放。每个可拖动对象都有一个可放置区域。然后,对于可拖动对象的定位,我创建了一个变量来存储不同的位置(基于 obj 高度和边距等。可拖动对象具有绝对位置,这是基于父 DIV 完成的。所以当我稍后获得位置时,我可以使用它们重新定位对象。
然后,我为 droppables 创建了一个 drop 函数,这样一旦一个对象被丢弃,它就会记录对象被丢弃的位置,并将其放入已经被占用的位置数组中。因此,如果我在 [步骤 2] 上放置了一些东西,并且它从顶部向下 220 像素,那么我将其记录在数组中。然后,紧接着,我检查所有的对象,看看哪些对象被丢弃了。这样我就知道我可以移动哪些物体。
现在我有了可以移动的对象和可用的位置。然后,我简单地浏览未移动的开放点和对象列表,并将它们简单地替换为开放位置。而不是试图仅在元素上重新定位。我基本上是重新定位一切,不管一开始是否很好。
我希望这可以帮助别人。