我正在构建一个应用程序,其中我需要反复获取位于特定位置(例如相对于视口的x,y)下的html元素列表。我正在考虑以下方法,但都不令人满意:
(1) 遍历html,构建一个数据结构,跟踪每个元素的x,y位置(x,y - >元素集),然后在需要进行查找时访问此数据结构。不幸的是,这种方法有点繁琐,我正在寻找更好的解决方法。而且,我担心它可能太慢了。
(2) 我正在考虑的另一种可能更好的方法是暂时添加一个顶层事件处理程序来捕获所有悬停事件,以模拟特定位置上的鼠标悬停,然后删除处理程序,但看起来这只会返回最高的元素(例如,如果有一堆绝对定位的div在特定位置上方,我认为它只会返回具有最高z-index的一个,而我需要所有的,尽管我不确定)。
(3) 对于IE,有componentFromPoint(x,y),但我找不到其他浏览器中的等效物 - 它只返回最高的元素。
请注意,该应用程序构建为书签小部件,我无法控制底层html - 这不幸地限制了任何简单的服务器端解决方案。
我愿意使用库(目前在jquery上)。
FYI,到目前为止,我在这里找到的最好的东西是获取基于x&y位置的DIV id;想知道是否有更现代的东西。
(1) 遍历html,构建一个数据结构,跟踪每个元素的x,y位置(x,y - >元素集),然后在需要进行查找时访问此数据结构。不幸的是,这种方法有点繁琐,我正在寻找更好的解决方法。而且,我担心它可能太慢了。
(2) 我正在考虑的另一种可能更好的方法是暂时添加一个顶层事件处理程序来捕获所有悬停事件,以模拟特定位置上的鼠标悬停,然后删除处理程序,但看起来这只会返回最高的元素(例如,如果有一堆绝对定位的div在特定位置上方,我认为它只会返回具有最高z-index的一个,而我需要所有的,尽管我不确定)。
(3) 对于IE,有componentFromPoint(x,y),但我找不到其他浏览器中的等效物 - 它只返回最高的元素。
请注意,该应用程序构建为书签小部件,我无法控制底层html - 这不幸地限制了任何简单的服务器端解决方案。
我愿意使用库(目前在jquery上)。
FYI,到目前为止,我在这里找到的最好的东西是获取基于x&y位置的DIV id;想知道是否有更现代的东西。