マウスイベントで特定のボタンが押された場合に処理を行うv-onディレクティブのマウス修飾子 [Vue.js]

Vue.js The Progressive JavaScript Framework

前回の記事では、キーボードの特定のキーが押されたことを検知して、キーイベントを処理する際に使用するキー修飾子について紹介しました。

キーイベントで特定のキーが押された場合に処理を行うv-onディレクティブのキー修飾子 [Vue.js]
Vue.jsでは特定のキーが押された時にキーイベントを発生させるためのキー修飾子が用意されています。 今回は、キーイベントで特...

Vue.jsでは、キーボードの特定のキーを判別するためにv-onディレクティブと共に指定するキー修飾子が用意されていますが、マウスの特定のボタンが押されたことを検知するためのマウス修飾子も用意されています。

そこで今回は、キー修飾子に続いてマウス修飾子について紹介します。

Vue.jsのマウス修飾子

マウス修飾子を利用することで、Left、Right,、Middleなどのマウスの特定のボタンに応じたイベントをv-onディレクティブでバインドすることができます。
マウス修飾子を利用して特定のマウスボタンを判別することで、右クリックした際のコンテキストメニューの表示などの処理を行うことができます。

マウス修飾子の実装例

ここでは、マウス修飾子を使用する例を紹介します。

以下の例では、div要素の右クリックでコンテキストメニューに見立てたリスト(ul~li要素)を表示しています。
左クリックでは、表示されているコンテキストメニューを非表示にしています。

HTML

CSS

JavaScript

div要素の右クリック時の処理は「v-on:click.right」でバインドしています。左クリック時の処理は「v-on:click.left」になります。
dataオプションに定義しているpositionプロパティは、コンテキストメニューを表示する位置情報になります。isShowプロパティは、コンテキストメニューの表示有無を表します。
右クリックの処理でマウスイベントの情報から位置情報のpositionプロパティを設定し、表示するためにisShowプロパティをtrueにしています。

上記のコードを実行すると以下のような結果が表示されます。

v-onディレクティブでclickイベントにマウス修飾子を適用した例の実行結果

マウスイベントでのシステムキー

キー修飾子で紹介した.ctrl、.shift、.altなどのシステムキー修飾子は、マウス修飾子と組み合わせて使用することもできます。
例えば、マウスの左ボタンクリックとCtrlキーを組み合わせて、v-onディレクティブにイベントをバインドする場合は、以下のようになります。

Vue.js 入門 Tips 一覧