column

ITコラム

mv9685

プログラミングノウハウ

2018.04.05

jQuery【 CSS 】hover でカーソルが当たった時の処理を実現するサンプル

CSS で :hover を使うと、カーソルが当たった時に CSS の設定を変更することができます。
今回は、jQuery で hover を使用する際のサンプルについて、解説いたします。

jQuery を使用した CSS の設定方法等については、以下のページもご参照下さい。
jQuery【 CSS 】スタイルを動的に変更する
jQuery【 CSS 】colorとfontを変更するサンプル
jQuery【 CSS 】addClass、removeClass を使ってCSSを変更するサンプル
jQuery【 CSS 】toggleClass を使ってCSSの切り替えを行うサンプル
jQuery【 CSS 】プロパティの値を取得するサンプル
jQuery【 CSS 】!important で優先度を変更するサンプル
jQuery【 CSS 】hover でカーソルが当たった時の処理を実現するサンプル(本ページ)
jQuery【 CSS 】display を使用した表示・非表示に関するサンプル

なお、未経験からITエンジニアへの就職に興味がある方や未経験からプログラミングを効率よく学びたいと考えている方は、就職率98.3%で受講料無料のプログラミングスクールプログラマカレッジもおすすめです。


1. hover とは

 
hover は、CSS の疑似クラスで、「 ポインティングデバイスの反応があるものの アクティブ化する必要はない状態 」の HTML 要素を選択します。

通常は、HTML 要素の上に マウスポインタ( カーソル )が当たった時に その要素が選択されます。

CSS の疑似クラスとは、セレクタに付加するキーワードで、選択された HTML 要素に対して特定の状態を指定する際に使用します。
詳しくは擬似クラスをご参照下さい。

▲目次へ戻る

 

2. マウスオーバー時に背景色を変更する

 
hover を使用して、マウスオーバー時に背景色を変更します。
下のボックス内にカーソルを当ててみて下さい。

 

 
上のサンプルのソースコードは次の通りです。

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
$(function() {

  $(".wkBox").hover(function() {

    // カーソルが当たった時の処理
    $(this).css("background-color", "skyblue");

  }, function() {

    // カーソルが離れた時の処理
    $(this).css("background-color", "#CCC");

  });
});
</script>

<div class="wkBox" style="background-color:#CCC; height:100px;">
 
</div>

カーソルが当たった時の処理部分のみを記述すると マウスオーバー時に背景色が変化しますが、カーソルが離れても背景色が元に戻りません。

マウスオーバー時の処理は、通常、カーソルが当たっている時だけ実行される処理を意図しているので、カーソルが当たった時の処理を記述する場合は カーソルが離れた時の処理も忘れずに記述します。

上のサンプルでは、デフォルトで背景色を「 #CCC 」に設定しているため カーソルが離れた時に「 #CCC 」に戻るように記述していますが、元々背景色の設定がない場合は「 $(“.wkBox”).css(“background-color”, “”); 」のように 空欄で指定します。

▲目次へ戻る

 

3. mouseover と hover との違い

 
mouseover と hover とを使用して、マウスオーバー時の動きを比較します。
下の各サンプルで、背景色の違うボックス間を 複数回カーソル移動させてみて下さい。

mouseover

 

hover

 
上のサンプルのソースコードは次の通りです。

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
$(function() {
  // mouseoverを使用
  $(".wkBox2").mouseover(function() {
    $(this).animate({fontSize : "24px"}, 500);
  });
  $(".wkBox2").mouseout(function(){
    $(this).animate({fontSize : "16px"}, 500);
  });
});

$(function() {
  // hoverを使用
  $(".wkBox3").hover(function(){
    $(this).animate({fontSize : "24px"}, 500);
  }, function(){
    $(this).animate({fontSize : "16px"}, 500);
  });
});
</script>

<div style="background-color:#CCC; height:100px;">
  <div class="wkBox2" style="background-color:peachpuff;">mouseover</div>
</div>
 
<div style="background-color:#CCC; height:100px;">
  <div class="wkBox3" style="background-color:peachpuff;">hover</div>
</div>

mouseover を使用したサンプルは、テキストが伸縮する動きが繰り返される現象が生じます。
これは、イベントバブリング( ある要素でイベントが発生すると 親や祖先要素にも同じイベントが発生すること )が原因です。

このようなイベントバブリングを発生させずにマウスオーバー時の処理を行うメソッドとして、mouseenter メソッドと mouseleave メソッドがありますが、jQuery では mouseenter メソッド及び mouseleave メソッドのショートカットメソッドとして hover が用意されています。

▲目次へ戻る

4. まとめ

jQuery hover を使用する際のサンプルについて、いかがでしたでしょうか。

「Webプログラマになりたいけど、独力では限界がある」と感じている方には、「プログラマカレッジ」がおすすめです。
プログラマカレッジ」は本気でプログラマを目指す方のための、就職支援付き、受講料無料のプログラミングスクールです。

今回ご紹介した「jQuery」を含む豊富なカリキュラムで、IT初心者からWebプログラマとして就職するまで、プロが完全にサポートします。
本気でプログラマとして就職・転職したいという方は、一度のぞいてみてはいかがでしょうか。

→ 就職支援付き無料プログラミングスクール「プログラマカレッジ」

▲目次へ戻る

無料説明会

SHARE

最新記事

無料説明会に参加してみる

INTERNOUS,inc. All rights reserved.

無料オンライン説明会へ