このページの本文へ

前へ 1 2 3 次へ

  • はてなブックマークに登録
  • del.icio.usに登録
  • livedoorクリップに登録
  • Buzzurlに登録
  • StumbleUponに登録
  • Google Bookmarksに登録
  • Facebookでシェア
  • Yahoo!ブックマークに登録
  • お気に入りに登録
  • 本文印刷

Web制作の現場で使えるjQuery UIデザイン入門 ― 第17回

jQueryでロールオーバー!プリロード対応版

2009年10月29日 14時00分更新

文● 西畑一馬/to-R

※この記事は「Web制作の現場で使えるjQuery UIデザイン入門」の第17回です。過去の記事もご覧ください。


 ロールオーバーは、画像にマウスカーソルを重ねたときに自動的に別の画像に表示を切り替える効果です。非常にポピュラーなUI表現として、ナビゲーションメニューなどに広く使われています。今回は、ナビゲーションメニューバーを例に、jQueryを利用してロールオーバー効果を設定する方法を紹介します。

今回制作するサンプル

サンプル画面
ロールオーバー効果付きメニューバーの完成画面。メニューボタンにマウスカーソルが重なると別の画像を表示する。画像がクリックできることをユーザーに視覚的に伝えられるメリットがある(画像クリックでサンプルページを表示します)


ロールオーバーの基本的な仕組みを作ろう

 最初に、もっとも単純な方法でロールオーバー効果を作成してみましょう。画像(img要素)の上にマウスカーソルが重なると、スクリプトで指定した別の画像に差し替えるロールオーバーです。

 メニューバーのHTML/XHTML(以下、HTML)は以下のように記述しています。メニュー部分はul/li要素で作成し、li要素の内側にa要素を、その内側にimg要素を記述しています。li要素の後とその次のli要素の間を<!-- と -->でコメントアウトしているのは、CSSでli要素を横並びにしたときに発生する余分な空白(すき間)を防ぐためです。コメントを入れないと、CSSでdisplay:inlineを設定したときに半角スペース分の空白が表示されてしまいます。

サンプル画像
li要素の間をコメントアウトしておかないとli要素内の画像の間に余分な空白が表示されてしまう

サンプル01(HTML部分)


<ul>
    <li><a href="#"><img src="images/jquery.jpg" alt="jQuery" /></a></li><!--
    --><li><a href="#"><img src="images/javascript.jpg" alt="javascript" /></a></li><!--
    --><li><a href="#"><img src="images/css.jpg" alt="CSS" /></a></li><!--
    --><li><a href="#"><img src="images/html.jpg" alt="HTML" /></a></li>
</ul>

 CSSは次のようになります。リストを横並びにするため、li要素にdisplay:inlineを設定しています。

サンプル01(CSS部分)


li{
    display:inline;
    list-style-type:none;
}
img{
    border:none;
}


 スクリプト部分は次のようになります。

サンプル01(スクリプト部分)


$(function(){
    $("img[src='images/jquery.jpg']").mouseover(function(){
        $(this).attr("src","images/jquery_on.jpg")
    }).mouseout(function(){
        $(this).attr("src","images/jquery.jpg")
    })
    
    $("img[src='images/javascript.jpg']").mouseover(function(){
        $(this).attr("src","images/javascript_on.jpg")
    }).mouseout(function(){
        $(this).attr("src","images/javascript.jpg")
    })
    
    $("img[src='images/css.jpg']").mouseover(function(){
        $(this).attr("src","images/css_on.jpg")
    }).mouseout(function(){
        $(this).attr("src","images/css.jpg")
    })
    
    $("img[src='images/html.jpg']").mouseover(function(){
        $(this).attr("src","images/html_on.jpg")
    }).mouseout(function(){
        $(this).attr("src","images/html.jpg")
    })
})


 4つのボタンについて、それぞれjQueryのイベントを設定しています。処理の内容はまったく同じですので、そのうちの1つ、「jQuery」と書かれた画像ボタンを例に解説しましょう。


$("img[src='images/javascript.jpg']").mouseover(function(){
    $(this).attr("src","images/javascript_on.jpg")
}).mouseout(function(){
    $(this).attr("src","images/javascript.jpg")
})


 セレクター部分では、属性セレクターを利用して、「src属性が『images/javascript.jpg』のimg要素」を指定しています(関連記事)。

 mouseoverイベントが発生すると、attr()を使ってimg要素のsrc属性をロールオーバー時の画像である「images/javascript_on.jpg」に変更します。一方、mouseoutイベントが発生すると、元の「images/javascript.jpg」に戻すように設定しています(関連記事)。

 以上の処理をロールオーバー効果を設定したい画像の数だけ繰り返し記述すれば、ロールオーバー効果付きメニューの完成です。

前へ 1 2 3 次へ

Get Microsoft Silverlight

関連記事

はてブ注目ランキング
  1. Google、リッチスニペットでイベントの日時や場所表示に対応15 users
  2. 大手に負けないネットショップの作り方12 users
  3. JavaScriptでRSSからPhotoshop画像を生成!9 users
  4. Adobe BridgeのJavaScriptでXMLを操作しよう8 users
  5. Google、中国から撤退か Google.cn 閉鎖の可能性も7 users
  6. もう配色には困らない!「Adobe Kuler」1456 users
  7. 30分でできる!Webサイトを高速化する6大原則1231 users
  8. Web制作会社が作った!超使えるJavaScriptライブラリ1044 users
  9. 黒船Google汐留沖に出現でWeb広告業界に激震!975 users
  10. Web制作に超便利!無料のプロトタイプ作成ツール777 users
最新記事

特設サイト

ASCII.jp会員サービス 週刊Web Professional登録

Webディレクター江口明日香が行く

Web Professional 連載記事一覧

Norton Internet Security 2010

Norton Internet Security 2010

シマンテック

5278円~

36%OFF!!

ソースネクスト 筆王ZERO (2010年パッケージ) (Amazon.co.jp購入者対象:その場で200円割引き)

ソースネクスト 筆王ZERO (2010年パッケージ) (Am…

ソースネクスト

3672円~

26%OFF!!

筆まめVer.20 通常版DVD-ROM

筆まめVer.20 通常版DVD-ROM

クレオ

4432円~

31%OFF!!

大航海時代 Online ~El Oriente~

大航海時代 Online ~El Oriente~

コーエー

4645円~

24%OFF!!

Norton Internet Security 2010 ニコニコパック

Norton Internet Security 2010 ニ…

シマンテック

5180円~

37%OFF!!

Adobe Photoshop Elements 8 日本語版 Windows版

Adobe Photoshop Elements 8 日本語版…

アドビシステムズ

1万1340円~

22%OFF!!

PowerDirector 8 Ultra 特別優待パッケージ版

PowerDirector 8 Ultra 特別優待パッケージ版

サイバーリンク トランスデジタル

5832円~

43%OFF!!

楽々はがき2010 開運年賀状

楽々はがき2010 開運年賀状

ジャストシステム

1692円~

19%OFF!!

Amazon.co.jp