👆

【Tailwind和訳】INTERACTIVITY/Pointer Events

2021/10/25に公開

この記事について

この記事は、INTERACTIVITY/Pointer Eventsの記事を和訳したものです。

記事内で使用する画像は、公式ドキュメント内の画像を引用して使用させていただいております。


Pointer Events

要素がポインタのイベントに反応するかどうかを制御するためのユーティリティ。

クラス プロパティ
pointer-events-none pointer-events: none;
pointer-events-auto pointer-events: auto;

使い方

pointer-events-auto を使用すると、ポインタイベント(:hoverclick など)に対するブラウザのデフォルトの動作に戻ります。

pointer-events-none を使用すると、要素がポインタイベントを無視します。ポインタイベントは子要素でも発生し、ターゲットの「下」にある要素にもパススルーされます。

Image from Gyazo

<div class="relative">
  <select class="...">
    <option>Indiana</option>
    <option>Michigan</option>
    <option>Ohio</option>
  </select>
  <div class="pointer-events-auto ...">
    <svg class="fill-current h-4 w-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
      <path d="M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z"></path>
    </svg>
  </div>
</div>

<div class="relative">
  <select class="...">
    <option>Indiana</option>
    <option>Michigan</option>
    <option>Ohio</option>
  </select>
  <div class="pointer-events-none ...">
    <svg class="fill-current h-4 w-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
      <path d="M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z"></path>
    </svg>
  </div>
</div>

カスタマイズ

バリアント

デフォルトでは、ポインターイベントのユーティリティーにはレスポンシブバリアントのみが生成されます。

tailwind.config.js ファイルの variants セクションにある pointerEvents プロパティを変更することで、ポインターイベントユーティリティー用に生成されるバリアントをコントロールすることができます。

例えば、この設定ではホバーとフォーカスのバリアントも生成されます。

tailwind.config.js
  module.exports = {
    variants: {
      extend: {
        // ...
+      pointerEvents: ['hover', 'focus'],
      }
    }
  }

無効化

ポインターイベントユーティリティーをプロジェクトで使用する予定がない場合は、設定ファイルの corePlugins セクションで pointerEvents プロパティを false に設定することで、完全に無効にすることができます。

tailwind.config.js
  module.exports = {
    corePlugins: {
      // ...
+    pointerEvents: false,
    }
  }

Discussion

ログインするとコメントできます