SYNCERのロゴ
アイキャッチ画像

MouseEvent.buttons - ポインタデバイスの全ボタン

buttonsは、MouseEventのプロパティです。イベント中、どのポインタデバイスのボタンを押しているかを表す数値を返します。buttonと似ていますが、ボタンに該当する数値が違う点、同時押しを判定できる点で違います。

概要

名前
buttons
所属
MouseEvent
IDL
readonly attribute unsigned short buttons;
仕様書
https://w3c.github.io/uievents/#dom-mouseevent-buttons

説明

ポインタデバイスのボタンを表す数値。数値は右利き用設定の場合です。

0
どのボタンも押されていない。
1
左ボタン。
2
右ボタン。
4
中央ボタン。
その他
同時押しの場合、そのボタンに該当する数値のビット演算子の和が値となります。

デモ

MouseEvent.buttonsのデモです。div要素(茶色い部分)にmousemoveイベントを設定しました。ボタンを押しながらポインタを動かしてみて下さい。私のMacの場合、同時押しを認識できないのか、和の値を取得できませんでした。

<!-- このコードは編集できます。 -->

<!DOCTYPE html>
<html>
<head>
<style>
div#hoge {
	width: 100% ;
	min-height: 150px ;
	background-color: #d36015 ;
}

div#result {
	white-space: pre-wrap ;
}
</style>
</head>
<body>
<div id="hoge"></div>
<hr>
<div id="result"></div>
<script>
/** try it! **/
var callbackFn =  function ( event ) {
	event.preventDefault() ;
	console.log( "buttons", event.buttons ) ;

	resultElement.innerHTML = "" ;
	resultElement.appendChild( new Text( "currentTarget: " + event.currentTarget + "(#" + event.currentTarget.id + ")" + "\n" ) ) ;
	resultElement.appendChild( new Text( "buttons: " + event.buttons + "\n" ) ) ;
} ;

document.getElementById( "hoge" ).addEventListener( "click", callbackFn ) ;
document.getElementById( "hoge" ).addEventListener( "contextmenu", callbackFn ) ;
/** try it! **/

var resultElement = document.getElementById( "result" ) ;
</script>

</body>
</html>

サポート状況

ChromeFirefoxSafariEdgeIEOperaiOS SafariAndroid
43+ 15+× 9+ 30+××
  • Twitterでシェア
  • Facebookでシェア
  • Google+でシェア
  • はてなブックマークでシェア
  • pocketに保存
  • LINEでシェア
更新履歴
2017年10月9日 (月)
コンテンツを公開しました。