2013-01-05 24 views
9

document.elementFromPoint(x,y)を使用し、複数の要素が指定された座標に配置されている場合、最上位の要素(ソースコードではなく、ビジュアル積み重ねの順序の最上位)が返されます。なぜdocument.elementFromPointはポインタイベントによって影響を受けますか?none?

CSSの一番上の要素にpointer-events: noneが設定されている場合、document.elementFromPointには表示されません。 This fiddleはその効果を実証しています。

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

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

+0

私はこの質問に同意します。ポインターイベントがnoneに設定されていても、ポイントの下の要素を検出することは可能であるはずです。少なくともそれをオプションにする – sidonaldson

答えて

11

The specs要素がヒットテストによって決定されるため、Chromeはここで正しく動作しているようです。他のブラウザではそれが違うかもしれませんが、仕様に準拠している場合は、pointer-eventsが機能しないようにする必要があります。

後でスペックで、ヒットテストが現時点でW3Cによって明確に定義されていないことが記載されています。しかし、おそらく彼らがcommon use of the termに似た何かを使っていると仮定することはおそらく安全です。

関連する問題