30
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CSSAdvent Calendar 2018

Day 5

pointer-eventsの本当の意味

Posted at

pointer-events: none を扱った記事も、リンクを無効にするとか、クリックを無効にするとか書かれていて、pointer-eventsについての説明として間違いとまでは言えないですが、正確ではないので、できるだけ正確な解説をします。

まずMDNの解説

特定のグラフィック要素がマウスイベントの対象になる可能性のある環境 (存在する場合) を設定します。

いまいちよくわかりませんね。
自分なりに説明すれば

その要素のマウスやタッチで反応する範囲を定義するプロパティ

ってところです。

参考用のデモ

htmlより細かい指定のできるsvgを例にすると直感的でわかりやすいです。
pointer-events: fill を指定すると、塗られた部分のみポインターに反応します。

つまり pointer-events: none はポインターに反応する範囲は一切無し、見えてはいるけどポインターに対しては存在しないかのようにふるまいます。
そのためポインターによるホバーやクリックには反応しませんが、キーボードのタブによるフォーカスとエンターによるクリックはできます。
ポインターでクリックしても、ないものとされるので配下がクリックされることになります。

イベントまわりを理解してたら、一見、内部的にはpreventDefault,stopPropagationしてイベントを無効してるようにも見えますが、そもそもイベントの発火自体していません。

30
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?