我把屏幕分成了两个
。在左边的
中,我有几个50x50像素的
,在右边的
中,我有一个由80x80的组成的空格子。左边的 上,它们应该捕捉到 的中心。 的属性,但是left和top属性是相对于左侧的
是可拖动的,一旦放在
听起来很简单,对吧?但我不知道该怎么做。我尝试通过操纵放置的
的top和left CSS属性来匹配它们放置到的
的。
我最好如何将放置的元素捕捉到其放置的元素的中心?这一定很简单,对吧?
编辑:我正在使用jQuery UI 1.7.2和jQuery 1.3.2。
编辑2: 对于其他人也遇到这个问题的人,这就是我解决的方法:
我在droppable插件的drop回调中使用Keith的解决方案,即删除拖动的元素并将其放置在被放置的元素内部:
function gallerySnap(droppedOn, droppedElement)
{
$(droppedOn).html('<div class="drop_styles">'+$(droppedElement).html()+'</div>' );
$(droppedElement).remove();
}
我不希望被删除的元素再次可拖动,但如果您需要,只需再次将可拖动绑定到该元素即可。
对于我来说,这种方法还解决了当我将删除的元素定位时(这将相对于左侧的 DIV
),并在第二个 DIV
中滚动时遇到的问题。(元素将保持在页面上固定,现在它们随着滚动而滚动)。
我尝试调整了捕捉选项,以使拖动过程中看起来更好,因此感谢 karim79 的建议。
我可能不会以此赢得任何令人惊叹的代码奖励,所以如果您发现有改进的空间,请分享!
draggable
和droppable
的默认行为。 - zepp133