1
70
一般的想法-你得到盒子的偏移量和尺寸,并检查它们是否重叠。
如果要更新,可以使用
另外,请注意,您可以针对特定示例优化函数。
|
2
17
我相信这是最简单的方法: http://plugins.jquery.com/project/collidable 这是另一个德语版本: http://www.48design.de/news/2009/11/20/kollisionsabfrage-per-jquery-plugin-update-v11-8/ 我想试试。 --更新-- 我现在真的不能花任何时间在这上面,但是我可以在回家的时候,如果除了你没有人回答我,我可以做如下事情:
|
3
7
这有点晚了,但我想你可以使用我在面对类似情况时尝试的方法。这里的优点是不需要额外的插件或脚本,也不必在其中引入性能要求很高的轮询。 此技术使用Jquery的droppable必须提供的内置方法和事件。 好吧,说得够多了,下面是解决方法: 假设您有两个元素(在我的例子中是图像),并且您不希望它们重叠或在重叠时检测到它们,请将这两个元素设置为可拖放的,并使它们相互“接受”:
“配置碰撞预防”如下:
“activate”和“drop”处理程序指的是“droppable”插件的“dropactivate”和“drop”事件 这里,关键是“drop”回调。当两个元素中的任何一个重叠并且彼此重叠时,将调用“drop”。这是检测和执行操作的地方,可能是发送自定义事件或调用其他操作(我在这里选择了将重叠元素的位置还原到拖动开始时的初始位置,这是在“activate”回调中捕获的)。 就这样。没有轮询,没有插件,只有内置事件。 好吧,可以对它进行其他优化/扩展,这只是我头脑中第一枪起作用:) 您还可以使用“dropover”和“dropout”事件向用户发出信号,并创建一个视觉反馈,表明两个元素重叠,而它们可能仍在移动中。
希望这有帮助! |
4
5
编辑:我在我的网站上写了一篇博文。这里有一个链接。 http://area36.nl/2014/12/creating-your-own-collision-detection-function-in-javascript/ 我也有同样的问题,但多亏了奥斯卡·戈德森的回答,我得到了一个有效的函数。我使用Jquery进行简单的编码,因为我很懒;p.我把这个函数放在另一个每秒都被触发的函数中,所以请记住这一点。
它所做的基本上是得到
|
5
3
我自己也遇到了这个普遍的问题,所以(完全公开)我做了一个插件。对于有关静态对象的简单碰撞查询,请尝试以下操作: http://sourceforge.net/projects/jquerycollision/ 它允许您获取重叠碰撞框的列表(如果没有碰撞,则为无):
或者要在“拖动”期间获取碰撞事件,请使用以下命令: http://sourceforge.net/apps/mediawiki/jquidragcollide/?source=navbar#collision 这会给你一个“碰撞”事件来连接。(或“突出”事件,查看div是否从当前包含它的另一个div逃逸。)
如果在运动过程中检查碰撞而不是拖动,只需反复调用原始对象,这非常快。注意:拖拽的不适合调整大小。 |
6
1
邮政是旧的,也许它可以帮助某人。。。
|
Softly · 单选按钮未按预期取值 1 年前 |
NovoMannen · 导航中的下拉菜单在内容后面重叠 1 年前 |
eXor420 · 如何在脚本标记中使用导出的函数? 1 年前 |
IonicMan · 剑道网格在宽度过大时不显示某些列 1 年前 |
Kernier · 如何将数学公式支持添加到StacksEditor? 1 年前 |
Md. Ibrahim · CSS网格项溢出小屏幕滚动 1 年前 |
Akshay mek · Vscode扩展建议不适用于某些文件夹 1 年前 |