2016-08-23 47 views
0

如何判斷一個元素是否高於另一個元素(如計算完所有z索引後)與querySelectorAll的結果。如何判斷一個元素是否高於另一個來自querySelectorAll的結果

+0

不要認爲有一個簡單的解決方案或一些瀏覽器API可以使用。您可能必須編寫與渲染引擎相同的邏輯,因此請考慮z-index(以及隨附的規則),然後再考慮html元素的順序和結構。你甚至想要完成什麼? –

+0

您可以使用https://stackoverflow.com/questions/18780139/how-to-get-bounding-box-for-div-element-in-jquery進行操作,並檢查是否有任何選定項目的邊界盒相交。這不會給你的命令,但你可以消除那些甚至不是彼此靠近的命令。這是一些2D遊戲的工作原理,因此搜索包圍盒可能會得到一些與遊戲相關的結果。 – jedifans

+0

@MarkoGrešak你認爲我可以逃脫只使用樹的深度? – SuperUberDuper

回答

1

不要以爲有一個簡單的解決方案,因爲在那裏是一個瀏覽器API,你可以打電話並獲得元素「z高度」。

您可以像渲染引擎工作的方式類似地處理此問題,其中基於DOM樹深度的堆疊元素位於另一個之上。然後還有CSS引擎,它根據標籤類型和CSS中的特殊規則(如z-index,特殊位置屬性(relativeabsolute等),甚至CSS「怪癖」)更改元素位置,例如z-index + opacity更改方式元素被堆疊。

根據您的目標,您可以簡化解析並忽略CSS正在做什麼,只考慮HTML。在那裏你有DOM API,這使得遍歷樹結構變得非常容易,DOM渲染引擎將處理所有錯誤但仍然工作的標記。

-1

如果你可以使用jQuery,檢查

$(element).css("z-index"); 
相關問題