Jquery 找到某个元素覆盖的每个DOM元素?

Jquery 找到某个元素覆盖的每个DOM元素?,jquery,html,css,dom,z-index,Jquery,Html,Css,Dom,Z Index,我在页面上有一个具有很高z索引的DOM元素,我需要找到它重叠的每个元素(即,同一个ish点中具有较低z索引的每个元素) 如何实现这一点?要获得z索引较低的所有元素,可以使用过滤器并根据z索引过滤元素 要获取位置与某个元素重叠的所有元素有点棘手。 需要得到叠加元素的角点位置,然后将其与每个元素的角点进行比较,以查看它们是否在某个位置重叠 总的来说,是这样的 var reference = $('#overlay'), index = reference.css('z-index')

我在页面上有一个具有很高z索引的DOM元素,我需要找到它重叠的每个元素(即,同一个ish点中具有较低z索引的每个元素)


如何实现这一点?

要获得z索引较低的所有元素,可以使用过滤器并根据z索引过滤元素

要获取位置与某个元素重叠的所有元素有点棘手。
需要得到叠加元素的角点位置,然后将其与每个元素的角点进行比较,以查看它们是否在某个位置重叠

总的来说,是这样的

var reference = $('#overlay'),
    index     = reference.css('z-index'),
    square    = getDimensions(reference);

function getDimensions(elem) {
    var offset = elem.offset();
    return [offset.top, offset.top + elem.height(), offset.left, offset.left + elem.width()];
}

$('body *').not('script, style, :hidden').filter(function() {
    // only elements with lower z-index or without z-index
    var idx = $(this).css('z-index');
    return isNaN(idx) || (idx < index);
}).filter(function() {
    // only elements that intersect with the overlaying element
    var offset = getDimensions($(this));
    return ((offset[1] > square[0]) && (offset[0] < square[1])) &&
           ((offset[3] > square[2]) && (offset[2] < square[3]));
});
var reference=$('#overlay'),
index=reference.css('z-index'),
正方形=尺寸(参考);
函数getDimensions(elem){
变量偏移=元素偏移();
返回[offset.top,offset.top+elem.height(),offset.left,offset.left+elem.width()];
}
$('body*').not('script,style,:hidden').filter(function()){
//仅限z索引较低或无z索引的元素
var idx=$(this.css('z-index');
返回isNaN(idx)| |(idxsquare[0])&(偏移量[0]平方[2])&(偏移量[2]<平方[3]);
});

我认为您可以对DOM的每个元素或具有标记类的每个元素执行循环,表示它使用了z索引。然后您可以像这样检查zindex,如果($('.yourClass').attr('z-index').val()