JQuery draggable - 没有重叠

时间:2010-08-14 07:12:20

标签: jquery draggable

是否可以说“draggable div's - > no overlap”?

我认为主要问题是:绝对; ......对吗?

善意的反叛 彼得

2 个答案:

答案 0 :(得分:15)

您可以尝试jquery-collisionjquery-ui-draggable-collision。完全披露:我刚刚在sourceforge上编写并发布了这些内容。

第一个允许:

var hit_list = $("#collider").collision(".obstacle");

这是与“#collider”重叠的所有“.obstacle”的列表。

第二个允许:

$("#collider").draggable( { obstacle: ".obstacle" } );

这给你(除其他外)一个“碰撞”事件要绑定到:

$("#collider").bind( "collision", function(event,ui){...} );

你甚至可以设置:

$("#collider").draggable( { obstacle: ".obstacle", preventCollision: true } );

防止“#collider”在拖动时与任何“.obstacle”重叠。

答案 1 :(得分:5)

jQuery UI draggable中没有用于碰撞检测的内置函数,除非您实际上是在进行排序之类的事情。最接近你想要的东西是可排序的plceholder,which looks like this

短版本是碰撞检测,每个拖动的元素在性能方面都不是微不足道的(取决于元素的数量),所以它被排除在库外,因为它是一个非常罕见的请求。但是,如果您确实需要碰撞检测,则可以在draggable's drag event内自己计算碰撞。