0
我有一堆元素,通过各种方法定位(绝对,固定和静态),各种z索引,其中一些是其他父项。有没有一种简单的,一般的方法来确定,对于任何两个元素,哪一个在另一个之前?javascript/jquery:检测前两个元素中的哪一个
我想到的办法是这样的:
Let A and B be the two elements.
Let X and Y be two sibling elements such that X is A or an ancestor of A, and Y is B or an ancestor of B.
If X has a higher z-index than Y, then A is in front of B.
然而,这似乎是很多的代码一个简单的问题,我也担心可能存在的角落情况下,它不”给出正确的答案。任何人有更好的主意?
我的意思是,这些元素的计算样式将返回任何父元素的z-index的是,如果它是组。 'static'元素没有收到z-index,他们使用'auto',然后默认在树上。如果他们的父母没有静态和z-索引以外的职位,那么他们只会拥有自动,这对于所有意图和目的来说也不是0。 – Ohgodwhy
如果你有一个它们可能重叠的x,y点的id,你可以使用'document.elementFromPoint(x,y)'返回最前面的元素。 – Shmiddty
@Shmiddty:我想过,但交叉点可能有第三个元素(用例是drag-n-drop代码,所以我拖动的东西可能会掩盖交叉点) – josh