onmouseenter

イベントハンドラのonmouseenterについて、サンプルコードを示しながら使い方を説明しています。

onmouseenterの基本的な使い方

イベントハンドラのonmouseenterは、要素内にマウスカーソルが移動した時に処理を実行できます。

以下は、利用例です。

【onmouseenter利用例】
<div id="test-enter">
ここにマウスを移動します。
</div>

<script>
const x = document.querySelector("#test-enter");
x.onmouseenter = function(){alert("テストです");};
</script>

赤字部分でmouseenterイベントを登録しています。

実行例は、以下のとおりです。

ここにマウスを移動します。

要素内にマウスを移動すると、アラートが表示されます。

画像での利用例

onmouseenterは、img要素でも使えます。

【img要素での利用例】
<img src="199.png" alt="" id="test-enter">

<script>
function func1() {
  x.src = "11.png";
}
function func2() {
  x.src = "199.png";
}

const x = document.querySelector("#test-enter");
x.onmouseenter = func1;
x.onmouseleave = func2;
</script>

11.pngはスペードAの画像で、199.pngはトランプ裏の画像とします。

最初は、トランプ裏の画像が表示されますが、赤字部分により画像内にマウスが移動した時、スペードのAに入れ替わります。青字部分は画像の外にマウスが移動した時、トランプ裏の画像に戻しています。onmouseleaveは、マウスが要素外に出た時をイベントとします。

実行例は、以下のとおりです。

画像内にマウスカーソルがある間だけ、トランプが表になってスペードのAである事ことが確認できます。

子要素からの移動

onmouseenterは、外側からマウスが移動するとイベントとなりますが、子要素(内側の要素)から移動するとイベントになりません。

【子要素がある時のonmouseenter利用例】
<div id="test-enter1">
枠内にマウスを移動させると赤になります。<br>
トランプ画像にマウスを移動させると黒になります。
<img src="11.png" alt="スペードA" id="test-enter2">
再度トランプ画像の外にマウスを移動させるても赤になりません。
</div>

<script>
function func1() {
  x.style.color = "red";
}
function func2() {
  x.style.color = "black";
}

const x = document.querySelector("#test-enter1");
const y = document.querySelector("#test-enter2");
x.onmouseenter = func1;
y.onmouseenter = func2;
</script>

divの子要素として、img要素があります。

赤字部分でマウスカーソルが枠内(div内)に移動すると、赤色に変わるようにしています。青字部分は、マウスカーソルが画像内(img内)に移動した時の処理で、黒字になるようにしています。

実行例は、以下のとおりです。

枠内にマウスを移動させると赤になります。
トランプ画像にマウスを移動させると黒になります。 スペードA 再度トランプ画像の外にマウスを移動させるても赤になりません。

枠内に移動させると赤になり、子要素である画像に移動させると黒になります。子要素である画像から枠内に移動させても赤にはなりません。このため、外側から内側への移動だけイベントになっていることがわかると思います。

HTMLの属性として記述する(非推奨)

onmouseenterは、HTMLの属性としても記述できます。

【onmouseenterをHTML属性で記述する例】
<div onmouseenter="alert('テストです');">
ここにマウスを移動します。
</div>

divタグで、onmouseenter属性によってalertを実行しています。これでも、同じ動作をします。

属性で記述する方法は、以前は多く使われていましたが、今では非推奨になっています。新しくスクリプトを作る時は、これまで説明したプロパティで記述するか、イベントリスナーを使って記述がお薦めです。

ブラウザのサポート状況

各ブラウザの最新バージョンでのサポート状況は、以下のとおりです。

【パソコン】
項目 IE Ed Fx Ch Sa Op
onmouseenter
【スマートフォン】
項目 Sa An Op Ch Fx Sm
onmouseenter
サポート
制限あり
×
未サポート
不明
IE
Internet Explorer
Ed
Edge
Fx
Firefox
Ch
Chrome
Sa
Safari
Op
Opera
An
Android Browser
Sm
Samsung Internet

※スマートフォンのFirefoxとChromeは、Android版です。

サイト内で関連ページをチェック

ホームページ作成「onmouseenterとonmouseoverの違い