マウスイベント
イベント監視に関しては、addEventListener
監視または要素の属性を通じてoneventname
指定できます。
const app = document.getElementById('app')
//通过addEventListener方法注册事件监听器
app.addEventListener('click',(event)=>{
console.log('app',event)
})
//通过元素的onclick属性注册事件监听器
app.onclick = (e)=>{
}
後続のすべてのイベントは、上記の 2 つの方法で登録できます。
イベント キャプチャとバブリングの場合、イベント ハンドラーはデフォルトでバブリング フェーズに登録されるようになりました。
マウスイベントの種類
auxclick
実験的な特性。主ではないマウス ボタン (左ボタンなど) がクリックされたときに発生します。対応する要素のonauxclick
属性
click
click
このイベントは、要素上でマウスの左ボタンが押されて放されるとトリガーされます。
マウスを要素上で押し、要素の外に移動して放した場合、2 つの要素を含む最も具体的な親要素でイベントがトリガーされます。
イベントオブジェクトのタイプPointerEvent
。ポインタ イベント ポインタ イベント。
contextmenu
ユーザーがコンテキスト メニューを開こうとすると発生します。通常、マウスを右クリックするか、キーボードのメニュー キーが押されたときに (失敗したときに) トリガーされます。メニューキーを使用すると、フォーカスされた要素の左下隅にメニューが表示され、要素がDOMツリーの場合は行の左下隅にメニューが表示されます。通常、ブラウザのページを右クリックすると、ブラウザの右クリック メニューが表示されますが、event.preventDefault()
メソッドを使用してブラウザのデフォルトのコンテキスト メニューを無効にすることができます。
app.addEventListener('click',(event)=>{
console.log('app',event)
event.preventDefault()
})
イベントオブジェクトPointerEvent
dblclick
ダブルクリック イベント。このイベントは、単一の要素上でマウスの左ボタンが 2 回クリックされるとトリガーされます。
イベントオブジェクトMouseEvent
mousedown
ポインティング デバイスのボタンが押されたときに発生します。
イベントオブジェクトMouseEvent
mouseenter
イベントをトリガーする要素内のアクティブ化領域上にマウスが最初に移動したときに発生します。この最初の動きについての私の理解は、マウスがこの要素から出て、次にこの要素に移動したときにトリガーされるということです。
イベントオブジェクトMouseEvent
mouseleave
ポインタが要素の外に移動すると発生します。に似ていますmouseout
が、mouseleave
バブリングはありません。ポインタが要素とそのすべての子孫から離れるときに起動されますmouseleave
。ポインターが要素から離れるとき、または要素の子孫から離れるときに (ポインターがまだ要素内にある場合でも) 発生しますmouseout
。
イベントオブジェクトMouseEvent
mousemove
このイベントは、マウスが要素上 (つまり、要素内) に移動するとトリガーされます。
イベントオブジェクトMouseEvent
mouseout
ぜひご覧くださいmouseleave
。
イベントオブジェクトMouseEvent
mouseover
このイベントは、マウスが要素の上に移動すると、要素上でトリガーされます。mouseenter
エリアがアクティブ化された場合にのみトリガーされます。例えば?
イベントオブジェクトMouseEvent
mouseup
マウスが要素内にあるときにマウス ボタンが放されると発生します。
イベントオブジェクトMouseEvent
MouseEvent
インターフェース
MouseEvent
インターフェースの継承関係:MouseEvent
→ UIEvent
→Event
、 、のEvent
プロパティとメソッドを見てみましょう。UIEvent
MouseEvent
Event
インターフェース
属性
ROは読み取り専用を意味します
bubbles
RO bool は、イベントが DOM 内でバブルアップするかどうかを示すために使用されます。cancelBubble
stopPropagation() の歴史的な別名。イベント ハンドラーが戻る前に、バブリングを防ぐためにこのプロパティを true に設定します。cancelable
RO bool はイベントをキャンセルできるかどうかを示しますcomposed
RO boo は、イベントがシャドウ DOM と通常の DOM を介してバブルできるかどうかを示しますcurrentTarget
RO obj は、イベントの現在登録されているターゲットへの参照です。識別子は、現在のイベントが DOM に沿ってトリガーされるときのイベントの現在のターゲットです。常に、イベントがバインドされている要素を指します。これは、同じイベント ハンドラーが複数の要素にバインドされている場合に便利です。https://developer.mozilla.org/en-US/docs/Web/API/Event/Comparison_of_Event_TargetseventPhase
RO int は、イベント ストリームの準備と処理の段階を示します。https://www.w3.org/TR/DOM-Level-3-Events/#event-flowtarget
RO obj イベントの元のターゲット値への参照。ここでの「オリジナル」とは、イベントが最初にディスパッチされたときに指定されたターゲットを指します。timeStamp
ROミリ秒type
RO イベントのタイプ(大文字と小文字は区別されません)isTrusted
RO は、イベントがブラウザによって開始されたか、スクリプトによって開始されたかを示します。真のユーザー
方法
composePath()
イベントのパスを返します。preventDefault()
イベントをキャンセルします。このイベントが明示的に処理されない場合、デフォルトのアクションを通常どおり実行すべきではないことをユーザー エージェントに伝えます。しかし、事件はさらに広がり続けるだろう。stopImmediatePropagation()
この特定のイベントに対して他のリスナーは呼び出されません。このイベントは、同じ要素にも、後で走査される要素にも追加されません。同じイベントをリッスンする他のイベント リスナーが呼び出されないようにします。複数のイベント リスナーが同じ要素の同じイベント タイプにアタッチされている場合、このイベントが発生すると、追加された順序で呼び出されます。いずれかのイベント リスナー内で実行された場合stopImmediatePropagation()
、残りのイベント リスナーは呼び出されません。stopPropagation()
キャプチャフェーズとバブリングフェーズで現在のイベントがさらに伝播するのを防ぎます。ただし、デフォルトの動作の発生を防ぐことはできません。
UIEvent
インターフェース
UIEvent
Event
これには、すべてのプロパティとメソッドに加えて、次のプロパティも含まれています。
属性
detail
RO 値が空でない場合、現在のクリック数が表示されます。click/dblclick は現在のクリック数です。mousedown/mouseup は現在のクリック数に 1 を加えたものです。他の値は0です。pageX
RO 非標準 ドキュメント全体に対する相対的な x 座標をピクセル単位で返します。このドキュメントでは、ドキュメントの端に基づいて任意のページの水平スクロールを考慮します。たとえば、ページが右に 200 ピクセルスクロールし、スクロール バーが表示される場合、ドキュメントの左側はウィンドウに対して左に 200 ピクセル移動します。マウス クリックはウィンドウの左側から 100 ピクセル離れていますが、これは pageX の戻り値である 300 のままです。pageY
RO 同上view
RO は、作成時に document.defaultView オブジェクトを返します。ブラウザでは、これはイベントが発生するウィンドウ オブジェクトです。
MouseEvent
インターフェース
MouseEvent
UIEvent
のすべてのプロパティとメソッドに加えてEvent
、次のプロパティも含まれています。
属性
altKey
RO bool マウスイベントがトリガーされたときに Alt キーが押された場合は true を返します。button
RO イベントをトリガーしたユーザーが押したマウス ボタンを表す値を返します。このプロパティは、イベントをトリガーした 1 つまたは複数のキーを押すか離す間にどのキーが押されたかを示すことのみができます。デフォルトでは、0 が左ボタン、2 が右ボタンですが、ユーザーが変更できます。buttons
RO は、イベントがトリガーされたときにどのマウス ボタンが押されたかを示します。マウスによって押されたボタンを識別する番号。複数のキーが押された場合、値はすべてのキーの対応する値に対する OR (|) 演算の結果と等しくなります。clientX
RO は、イベントが発生したときのアプリケーションのクライアント領域 (ブラウザ ウィンドウ) の水平座標を提供します。x
プロパティは彼の別名です。clientY
RO は、イベントが発生したときのアプリケーションのクライアント領域 (ブラウザ ウィンドウ) の垂直座標を提供します。y
プロパティは彼の別名です。ctrlKey
RO bool マウスイベントがトリガーされたときに Ctrl キーが押されている場合は true を返します。metaKey
RO bool は、マウス イベントがトリガーされたときにメタ キー (ウィンドウ オペレーティング システムのキーボードの Win キー) が押された場合に true を返します。movementX
RO現在のイベントと前のイベントmousemove
の間の水平方向のマウス移動値。movementY
RO 同上、垂直方向offsetX
RO イベント オブジェクトとターゲット ノード間の x 軸方向のパディングのオフセット。現在のターゲット ノードは、このイベントが発生する要素です。offsetY
RO 上と同じ、y 軸。region
RO は、クリック イベントの影響を受けるクリック領域 ID を返します。影響を受ける領域がない場合は null を返します。relatedTarget
マウス イベントの RO セカンダリ ターゲットhttps://developer.mozilla.org/zh-CN/docs/Web/API/MouseEvent/popularTargetscreenX
マウスのグローバル (画面) 水平座標 (オフセット)。複数画面ディスプレイの場合、横に並んだ画面は 1 つのデバイスとして扱われます。screenY
RO 上と同じ、垂直座標。shiftKey
bool マウスイベントがトリガーされたときに Shift キーが押された場合は true を返します。