15

を使用document.elementFromPoint(x,y)し、指定された座標に複数の要素が配置されている場合、最上位の要素 (ソース コードではなく、視覚的なスタック順で最上位) を返すことになっています。

最上位の要素がpointer-events: noneCSS で設定されている場合、document.elementFromPointそれは表示されません。このフィドルはその効果を示しています。

これは意図した動作ですか? 要素を見つけるために指定した座標で、ブラウザーがクリック イベント (添付のクリック ハンドラーまたは既定の動作を起動しない秘密のクリック イベント) を起動しているようです。document.elementFromPointがさまざまなブラウザでどのように実装されているかを確認する方法はありますか? CSS プロパティが、まったく関係のない DOM 関数の動作に影響を与えるというのは、かなり奇妙に思えます。

これは最新のChromeでのみテストしました。私は、すべてのブラウザがこれを異なる方法で扱うと確信しています。私は主に Webkit ベースのブラウザーに興味がありますが、他のブラウザーに関する詳細情報はいつでも歓迎します。

4

1 に答える 1

14

スペックによると、要素はヒット テストによって決定されるため、Chrome はここで適切に動作しているようです。他のブラウザーでは異なる方法で動作する可能性がありますが、仕様に従っている場合はpointer-events、機能しないことが予想されます。

仕様の後半で、ヒット テストは現時点で W3C によって明確に定義されていないと述べています。ただし、少なくとも「」という用語の一般的な使用法に似たものを使用していると想定するのはおそらく安全です。

于 2013-01-05T22:20:11.660 に答える