javascript - 使用javascript来检查多个div的xy坐标或者解析坐标的存储的array?

  显示原文与译文双语对照的内容
0 0

我正在制作一个js函数:
- 创建一个新的div
- 将新创建的分区的xy坐标与已经存在的其他分区进行比较
如果默认的坐标已经被现有的div占用,则对角撞击新的div

所以,如果我单击一个按钮并做一个新的div ( 可以拖动框),我只想快速扫描所有已经在页面上已经存在的框的坐标,如果我找到了一个已经放置了新框的坐标的盒子,那么将这个新框放到左边的位置上。 我可能会把它放在一个循环中,以防初始的凹凸会在另一个盒子上。

我使用 jquery,如果hones是响应。 我已经知道怎么做编码了我的问题是。

我想知道,为了进行比较,会更快地进行处理:

  • 所有现有的div坐标对已经存储在一个 js array ( 当拖动任何 div/框时,实际上是使用下一个方法 pre-emptively ) 中,并且在索引存在时运行函数检查

    --或者---

  • js函数循环遍历所有的框 div ( 它们都有一个通用的css类),检查所有现有的div坐标直接在页面上( vs ) 。 查找存储在数组中的对象

我不需要将坐标存储在 array 中的任何其他原因,因此如果它不是第一个位置的首选方法,那么就不需要这样做。 在 array 中存储坐标基本上是与后者相同的过程,但是我很好奇,如果javascript通过这个 array 来浏览它的过程比第一个位置要快得多。

我猜,性能差异是 NOT 特别重要的,但我很好奇的是,哪种方法是明智的。

时间: 原作者:

0 0

我觉得你的问题不清楚。 当你只想检查已经占用的div时,你的第一个方法最快,但是当你想要检查最近的对时,它是一个很清楚的computional问题: http://en.wikipedia.org/wiki/Closest_pair_of_points_problem

编辑:为什么不对跳水进行排序,并将新的div添加到末尾?

原作者:
0 0

你可能会发现elementFromPoint对于这个目的很有用

https://developer.mozilla.org/En/DOM:document.elementFromPoint

它只给你一个给定点最前面的元素。 在你的情况下,这可能。 只需确保在将新div放置在DOM树中之前检查

我是 NOT 确定是否在绝对定位元素上工作,当然,浏览器支持。

...