是否可以说“draggable div's - > no overlap”?
我认为主要问题是:绝对; ......对吗?
善意的反叛 彼得答案 0 :(得分:15)
您可以尝试jquery-collision加jquery-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内自己计算碰撞。