gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 17:14:25 27 4
gpt4 key购买 nike

我在页面上有一个具有非常高 z-index 的特定 DOM 元素,我需要找到它重叠的每个元素(即,在相同点上具有较低 z-index 的每个元素)

我该如何实现?

最佳答案

要获取具有较低 z-index 的所有元素,您可以使用过滤器并根据 z-index 过滤元素。

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

总的来说,是这样的

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]));
});

FIDDLE

关于jquery - 找到某个元素覆盖的每个 DOM 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28786198/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com