计算屏幕上特定位置存在多少层

时间:2016-01-16 23:13:05

标签: javascript jquery

我的页面正在运行touchmove事件,该事件通过以下方式捕获用户手指在屏幕上的位置:

xPos = e.originalEvent.touches[0].pageX;
yPos = e.originalEvent.touches[0].pageY;

页面有很多层(使用position:absolute divs创建),此时,我想计算用户屏幕上当前位置下面有多少这样的图层。

我能想到的唯一方法是拥有一个包含所有图层位置的数组并循环遍历。然而,当屏幕上可能同时存在数百个图层时,这似乎是处理器密集型的。

在js或JQuery中是否有一种简单的方法来计算某个位置中存在的项目,或者比我的数组建议更好的练习方法。

1 个答案:

答案 0 :(得分:0)

据我所知,没有这样的方法。我的方法是给所有图层一个特定的类,选择它们并迭代它们。根据您要尝试实现的目标以及您必须执行此计算的频率,可以使用缓存和近似(例如,不检查某个像素,但是x ^ 2像素的区域和缓存结果,等等,使事情运行得更快。

话虽这么说,但我鼓励您首先尝试一下您已经想到的解决方案,看看它实际运行的速度有多快。对于这样的标准操作,浏览器非常快(想想通过边界检查进行图层拖放),所以我非常有信心它不会像你想象的那样缓慢:)