aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/api/mouseevent/index.html
blob: 1bdf37eee498a9d6b35d39c3a31d7d2cb2daec1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
---
title: MouseEvent
slug: Web/API/MouseEvent
tags:
  - API
  - DOM
  - DOM Events
  - Interface
  - MouseEvent
  - Reference
  - events
  - mouse
  - インターフェイス
translation_of: Web/API/MouseEvent
---
<div>{{APIRef("DOM Events")}}</div>

<p><code><strong>MouseEvent</strong></code> インターフェイスは、ポインティングデバイス (マウスなど) によるユーザの対話によって発生したイベントを表します。このインターフェイスを使用する一般的なイベントとして {{event("click")}}, {{event("dblclick")}}, {{event("mouseup")}}, {{event("mousedown")}} があります。</p>

<p><code>MouseEvent</code>{{domxref("UIEvent")}} から派生しており、これはさらに {{domxref("Event")}} から派生しています。後方互換性のために {{domxref("MouseEvent.initMouseEvent()")}} メソッドは維持されていますが、 <code>MouseEvent</code> オブジェクトを作成する際は {{domxref("MouseEvent.MouseEvent", "MouseEvent()")}} コンストラクターを使用するべきです。</p>

<p><code>MouseEvent</code> からは、 {{domxref("WheelEvent")}}, {{domxref("DragEvent")}} などの特定用途向けイベントが派生しています。</p>

<p>{{InheritanceDiagram}}</p>

<h2 id="Constructor" name="Constructor">コンストラクター</h2>

<dl>
 <dt>{{domxref("MouseEvent.MouseEvent", "MouseEvent()")}}</dt>
 <dd><code>MouseEvent</code> オブジェクトを生成します。</dd>
</dl>

<h2 id="Properties" name="Properties">プロパティ</h2>

<p><em>このインターフェイスは、親インターフェイスである {{domxref("UIEvent")}} および {{domxref("Event")}} のプロパティも継承しています。</em></p>

<dl>
 <dt>{{domxref("MouseEvent.altKey")}} {{readonlyinline}}</dt>
 <dd>マウスイベントが発生したときに <kbd>alt</kbd> キーが押下されていれば、 <code>true</code> を返します。</dd>
 <dt>{{domxref("MouseEvent.button")}} {{readonlyinline}}</dt>
 <dd>マウスイベントが発生したときに押下されたボタンの番号 (もしあれば) です。</dd>
 <dt>{{domxref("MouseEvent.buttons")}} {{readonlyinline}} {{gecko_minversion_inline("15.0")}}</dt>
 <dd>マウスイベントが発生したときに離されていたボタンの番号 (もしあれば) です。</dd>
 <dt>{{domxref("MouseEvent.clientX")}} {{readonlyinline}}</dt>
 <dd>ローカル (DOM content) 座標における、マウスポインターの X 座標。</dd>
 <dt>{{domxref("MouseEvent.clientY")}} {{readonlyinline}}</dt>
 <dd>ローカル (DOM content) 座標における、マウスポインターの Y 座標。</dd>
 <dt>{{domxref("MouseEvent.ctrlKey")}} {{readonlyinline}}</dt>
 <dd>マウスイベントが発生したときに <kbd>control</kbd> キーが押下されていれば、 <code>true</code> を返します。</dd>
 <dt>{{domxref("MouseEvent.metaKey")}} {{readonlyinline}}</dt>
 <dd>マウスイベントが発生したときに <kbd>meta</kbd> キーが押下されていれば、 <code>true</code> を返します。</dd>
 <dt>{{domxref("MouseEvent.movementX")}} {{readonlyinline}}</dt>
 <dd>前の {{event("mousemove")}} イベントの位置に対して相対的な、マウスポインタの X 座標。</dd>
 <dt>{{domxref("MouseEvent.movementY")}} {{readonlyinline}}</dt>
 <dd>前の {{event("mousemove")}} イベントの位置に対して相対的な、マウスポインタの Y 座標。</dd>
 <dt>{{domxref("MouseEvent.offsetX")}} {{readonlyinline}}{{experimental_inline}}</dt>
 <dd>対象ノードのパディング境界の位置に対して相対的な、マウスポインタの X 座標。</dd>
 <dt>{{domxref("MouseEvent.offsetY")}} {{readonlyinline}}{{experimental_inline}}</dt>
 <dd>対象ノードのパディング境界の位置に対して相対的な、マウスポインタの Y 座標。</dd>
 <dt>{{domxref("MouseEvent.pageX")}} {{readonlyinline}}{{experimental_inline}}</dt>
 <dd>ドキュメント全体に対して相対的な、マウスポインタの X 座標。</dd>
 <dt>{{domxref("MouseEvent.pageY")}} {{readonlyinline}}{{experimental_inline}}</dt>
 <dd>ドキュメント全体に対して相対的な、マウスポインタの Y 座標。</dd>
 <dt>{{domxref("MouseEvent.region")}} {{readonlyinline}}</dt>
 <dd>イベントの影響を受けたヒット領域の ID を返します。影響を受けたヒット領域がない場合は、<code>null</code> を返します。</dd>
 <dt>{{domxref("MouseEvent.relatedTarget")}} {{readonlyinline}}</dt>
 <dd>イベントのセカンダリターゲットがあれば、それを表します。</dd>
 <dt>{{domxref("MouseEvent.screenX")}} {{readonlyinline}}</dt>
 <dd>グローバル (スクリーン) 座標における、マウスポインタの X 座標。</dd>
 <dt>{{domxref("MouseEvent.screenY")}} {{readonlyinline}}</dt>
 <dd>グローバル (スクリーン) 座標における、マウスポインタの Y 座標。</dd>
 <dt>{{domxref("MouseEvent.shiftKey")}} {{readonlyinline}}</dt>
 <dd>マウスイベントが発生したときに <kbd>shift</kbd> キーが押下されていれば、<code>true</code> を返します。</dd>
 <dt>{{domxref("MouseEvent.which")}} {{non-standard_inline}} {{readonlyinline}}</dt>
 <dd>マウスイベントが発生したときに押下されていたボタン。</dd>
 <dt>{{domxref("MouseEvent.mozPressure")}} {{non-standard_inline()}} {{deprecated_inline}} {{readonlyinline}}</dt>
 <dd>イベントが生成されたとき、タッチデバイスやタブレットデバイスに与えられた圧力の大きさです。この値の範囲は、<code>0.0</code> (最小圧力) から <code>1.0</code> (最大圧力) の間です。このプロパティは非推奨 (または非標準) なので、代わりに {{domxref("PointerEvent")}} を使用し、 {{domxref("PointerEvent.pressure", "pressure")}} プロパティを見てください。</dd>
 <dt>{{domxref("MouseEvent.mozInputSource")}} {{non-standard_inline()}} {{readonlyinline}}</dt>
 <dd>イベントを生成したデバイスの種類 (<code>MOZ_SOURCE_*</code> 定数のいずれか)。これにより、例えばマウスイベントが実際のマウスによって発生したのか、あるいはタッチイベントによって発生したのかを識別できます (これは、イベントに関連する座標を解釈する際の正確さに影響を与えるでしょう)。</dd>
 <dt>{{domxref("MouseEvent.webkitForce")}} {{non-standard_inline()}} {{readonlyinline}}</dt>
 <dd>クリック時に与えられた圧力。</dd>
 <dt>{{domxref("MouseEvent.x")}} {{experimental_inline}}{{readonlyinline}}</dt>
 <dd>{{domxref("MouseEvent.clientX")}} の別名。</dd>
 <dt>{{domxref("MouseEvent.y")}} {{experimental_inline}}{{readonlyinline}}</dt>
 <dd>{{domxref("MouseEvent.clientY")}} の別名。</dd>
</dl>

<h2 id="Constants" name="Constants">定数</h2>

<dl>
 <dt>{{domxref("MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN")}} {{non-standard_inline}}{{readonlyinline}}</dt>
 <dd>通常のクリックに必要な最小圧力。</dd>
 <dt>{{domxref("MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN")}} {{non-standard_inline}}{{readonlyinline}}</dt>
 <dd>強めのクリック (force click)に必要な最小圧力。</dd>
</dl>

<h2 id="Methods" name="Methods">メソッド</h2>

<p><em>このインターフェイスは、親インターフェイスである {{domxref("UIEvent")}} および {{domxref("Event")}} のメソッドも継承します。</em></p>

<dl>
 <dt>{{domxref("MouseEvent.getModifierState()")}}</dt>
 <dd>指定した修飾キーの現在の状態を返します。詳しくは {{domxref("KeyboardEvent.getModifierState")}}() をご覧ください。</dd>
 <dt>{{domxref("MouseEvent.initMouseEvent()")}} {{deprecated_inline}}</dt>
 <dd>作成した <code>MouseEvent</code> の値を初期化します。イベントがすでにディスパッチされている場合は、何も行いません。</dd>
</dl>

<h2 id="Example" name="Example"></h2>

<p>この例は、 DOM メソッドを使用してチェックボックスのクリックをシミュレーション (すなわち、プログラムで click イベントを生成) しています。</p>

<h3 id="HTML">HTML</h3>

<pre class="brush: html">&lt;p&gt;&lt;label&gt;&lt;input type="checkbox" id="checkbox"&gt; Checked&lt;/label&gt;
&lt;p&gt;&lt;button id="button"&gt;Click me&lt;/button&gt;</pre>

<h3 id="JavaScript">JavaScript</h3>

<pre class="brush: js">function simulateClick() {
  var evt = new <a href="/ja/docs/Web/API/MouseEvent">MouseEvent</a>("click", {
    bubbles: true,
    cancelable: true,
    view: window
  });
  var cb = document.getElementById("checkbox"); //element to click on
  var canceled = !cb.<a href="/ja/docs/Web/API/EventTarget.dispatchEvent" rel="internal">dispatchEvent</a>(evt);
  if(canceled) {
    // ハンドラで preventDefault を呼び出した場合
    alert("canceled");
  } else {
    // ハンドラで preventDefault を呼び出さない場合
    alert("not canceled");
  }
}
document.getElementById("button").addEventListener('click', simulateClick);</pre>

<h3 id="Result" name="Result">結果</h3>

<p>{{EmbedLiveSample('Example')}}</p>

<h2 id="Specifications" name="Specifications">仕様書</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">仕様書</th>
   <th scope="col">状態</th>
   <th scope="col">備考</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName('CSSOM View','#extensions-to-the-mouseevent-interface', 'MouseEvent')}}</td>
   <td>{{Spec2('CSSOM View')}}</td>
   <td><code>MouseEvent</code> を long から double へ再定義。すなわち <code>PointerEvent</code><code>pointerType</code> がマウスの場合、 double になります。</td>
  </tr>
  <tr>
   <td>{{SpecName('Pointer Lock','#extensions-to-the-mouseevent-interface','MouseEvent')}}</td>
   <td>{{Spec2('Pointer Lock')}}</td>
   <td>{{SpecName('DOM3 Events')}}<code>movementX</code> および <code>movementY</code> プロパティを追加。</td>
  </tr>
  <tr>
   <td>{{SpecName('CSSOM View', '#extensions-to-the-mouseevent-interface', 'MouseEvent')}}</td>
   <td>{{Spec2('CSSOM View')}}</td>
   <td>{{SpecName('DOM3 Events')}}<code>offsetX</code>, <code>offsetY</code>, <code>pageX</code>, <code>pageY</code>, <code>x</code>, <code>y</code> プロパティを追加。 screen, page, client, coordinate (x / y) プロパティを <code>long</code> から <code>double</code> へ変更。</td>
  </tr>
  <tr>
   <td>{{SpecName('UI Events', '#interface-mouseevent', 'MouseEvent')}}</td>
   <td>{{Spec2('UI Events')}}</td>
   <td></td>
  </tr>
  <tr>
   <td>{{SpecName('DOM3 Events','#events-mouseevents','MouseEvent')}}</td>
   <td>{{Spec2('DOM3 Events')}}</td>
   <td>{{SpecName('DOM2 Events')}}<code>MouseEvent()</code> コンストラクタ、<code>getModifierState()</code> メソッド、<code>buttons</code> プロパティを追加。</td>
  </tr>
  <tr>
   <td>{{SpecName('DOM2 Events','#Events-MouseEvent','MouseEvent')}}</td>
   <td>{{Spec2('DOM2 Events')}}</td>
   <td>初回定義</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>

<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div>

<p>{{Compat("api.MouseEvent")}}</p>

<h2 id="See_also" name="See_also">関連情報</h2>

<ul>
 <li>直近の親である {{domxref("UIEvent")}}.</li>
 <li>{{domxref("PointerEvent")}}: マルチタッチを含む拡張されたポインターイベント</li>
</ul>