请推荐一个处理可拖动元素碰撞检测的JQuery插件

IT技术 javascript jquery plugins draggable collision
2021-03-06 04:31:00

我们正在使用Draggable JQuery UI 插件并且需要禁止元素之间的重叠。我们可以自己编写一些碰撞检测,但更愿意使用经过测试的包。有什么建议?

5个回答

您可以尝试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”重叠。

谢谢回复。我正在尝试实现这种效果(adidas.com/us/homepage.asp)。如您所见,随着一个盒子变大,其他盒子会缩小以适应其大小。我认为碰撞检测是最好的方法,因为我需要盒子向一个盒子增长的方向缩小,你的插件可以检测到(NSE 和 W)。
2021-04-25 04:31:00
啊,好的,谢谢你的指点
2021-04-26 04:31:00
我刚刚下载了你的对撞机脚本,太棒了!我将如何让一个 DIV 网格在悬停时增长,并随着悬停 div 的增长而缩小其他(未悬停)div?
2021-05-01 04:31:00
此外,这个请求是在另一个线程上提出的,仅供参考。stackoverflow.com/questions/1964812/...
2021-05-08 04:31:00
我正在尝试将您的“jquery-ui-draggable-collision”实现到我的项目中,但是当我第一次加载您的文件时出现错误,我的猜测是我使用的是 jquery 1.6.4 和 jqueryui-1.8.16 ,并且在您的示例代码中您使用的是 jquery1.5.1。你能告诉我这是否就是它对我不起作用的原因吗?谢谢。
2021-05-10 04:31:00

快速搜索 jQuery 插件出现:

可碰撞的可拖动对象

看起来还早,但可能值得一试。

我知道这个问题很老了,但也许你会发现这很有用:我们的 jQuery 碰撞检查插件

描述是德语,但应该是不言自明的。您可以使用两个单个元素或什至元素集,并将返回一组所有碰撞元素。

Google 告诉我 gameQuery,一个 JQuery 插件,有一个“碰撞”功能:

http://gamequery.onaluf.org/#manual

在上面的页面上搜索“碰撞”一词。

这个谷歌搜索可以给你几个其他的选择:

http://www.google.com/search?q=jquery+collision+detection

假设,但我认为您需要的可以在这里找到:

$.event.special.drop

它使用 jQuery 著名的 $.event.special.drag 来创建 de drop 事件。您可以将自己的javascript代码.bind( "drop", function( event ){ 放在此函数内的this元素下, 代表具有您定义的类“drop”的对象,而 event.dragTarget 是被拖动的对象。

上面链接的站点上的更多文档。无论如何,这就是我所需要的。