私はelement.getClientRects()
を使用して、要素の境界線を取得するこの強引なオプションよりも良い方法があるかどうか分からないし、それが今までその要素を返すかどうかを確認するためにelementFromPoint
とその領域を反復処理:
var checkIfOnTop = function(el) {
console.log("Checking",el);
var rect = el.getClientRects()[0];
for (var x = rect.left; x <= rect.right; x++) {
for (var y = rect.top; y <= rect.bottom; y++) {
if (document.elementFromPoint(x, y) === el) {
console.log("This element is reachable by click at ",x,y);
return true;
}
}
}
console.log("This element is not reachable by click");
return false;
}
checkIfOnTop(document.getElementById('num1'));
checkIfOnTop(document.getElementById('num2'));
checkIfOnTop(document.getElementById('num3'));
#container { position: relative }
#num1 { position: absolute; left: 50px; height: 200px; width: 200px; background-color: blue}
#num2 { position: absolute; left: 50px; height: 200px; width: 200px; background-color: green}
#num3 { position: absolute; left: 100px; height: 200px; width: 200px; background-color: red}
<div id='container'>
<div id='num1'></div>
<div id='num2'></div>
<div id='num3'></div>
</div>
非常に大きな要素にはお勧めできません。
私は申し訳ありませんが、私は質問の意味を行うことはできません。もう少し説明していただけますか? –
コードスニペットで1000語の語句を塗ります –
[質問]を確認し、質問を更新して、試したことの[mcve]を含めてください。 – zzzzBov