【发布时间】:2010-11-18 06:53:19
【问题描述】:
我的屏幕分为两个DIVs。在左边 DIV 我有几个 50x50 像素 DIVs,在右边 DIV 我有一个由 80x80 LIs 组成的空网格。左侧的DIVs 是可拖动的,一旦放在LI 上,它们应该会吸附到LI 的中心。
听起来很简单,对吧?我只是不知道如何完成这件事。我尝试通过操纵丢弃的DIV 的top 和left CSS 属性来匹配它们被放入的LI,但是left 和top 属性是相对于左边的@ 987654335@.
我怎样才能最好地让被放置的元素捕捉到它被放置到的元素的中心?应该很简单吧?
编辑:我正在使用 jQuery UI 1.7.2 和 jQuery 1.3.2。
编辑 2:对于遇到此问题的其他人,我就是这样解决的:
我使用了 Keith 的解决方案,即在可放置插件的 drop 回调中移除拖动的元素并将其放置在放置的元素中:
function gallerySnap(droppedOn, droppedElement)
{
$(droppedOn).html('<div class="drop_styles">'+$(droppedElement).html()+'</div>' );
$(droppedElement).remove();
}
我不会再次拖动放置的元素,但如果你这样做,只需将可拖动的元素再次绑定到它。
对我来说,这种方法还解决了我在放置放置的元素(相对于左侧DIV)和在第二个DIV 内滚动时遇到的问题。 (元素将保持固定在页面上,现在它们会滚动)。
我确实使用了捕捉选项以使其在拖动时看起来不错,因此感谢 karim79 的建议。
我可能不会因此赢得任何很棒的代码奖,所以如果您看到改进的空间,请分享!
【问题讨论】:
标签: jquery draggable droppable