このページの本文へ

jQueryで作る多階層ドロップダウンメニュー (1/2)

2009年11月19日 22時26分更新

文●西畑一馬/to-R

  • この記事をはてなブックマークに追加
本文印刷


Web使jQuery UI19



 UI使jQuery

今回制作するサンプル

サンプル画面
ドロップダウン型のメニューバーのサンプル。マウスカーソルを重ねるとサブメニューが展開する(画像クリックでサンプルページを表示します)


基本のドロップダウンメニュー

 メインメニューにマウスカーソルを重ねると、すぐ下にサブメニューを表示するドロップダウン型メニューから作りましょう。サブメニューの1回層目までの表示に対応したメニューです。

サンプル01完成図

メインメニューのすぐ下にサブメニューを表示する


 HTMLXHTMLHTMLul/liliul/liulclassmenuulclasssub

01HTML


<ulclass="menu">
    <li><ahref="#">メニューA</a>
        <ulclass="sub">
            <li><ahref="#">サブメニューA</a></li>
            <li><ahref="#">サブメニューA</a></li>
            <li><ahref="#">サブメニューA</a></li>
        </ul>
    </li>
    <li><ahref="#">メニューB</a>
        <ulclass="sub">
            <li><ahref="#">サブメニューB</a></li>
            <li><ahref="#">サブメニューB</a></li>
            <li><ahref="#">サブメニューB</a></li>
        </ul>
    </li>
    <li><ahref="#">メニューC</a>
        <ulclass="sub">
            <li><ahref="#">サブメニューC</a></li>
            <li><ahref="#">サブメニューC</a></li>
            <li><ahref="#">サブメニューC</a></li>
        </ul>
    </li>
</ul>


 CSSCSSjQuery
作例サンプル

CSSでは上記画面のようにレイアウトする


 liul.menu lifloatalidisplay:block;widthheight100%a:hover

 liul.menu li ul.subposition:absolute;float:left;clearfixclearfix

01CSS


ul.menu li{
    float:left;
    width:179px;
    height:48px;
    background:url("images/btn.png");
}
ul.menu li a{
    display:block;
    width:100%;
    height:100%;
    line-height:48px;
    text-indent:30px;
    font-weight:bold;
    color:#CFDFB5;
    text-decoration:none;
}
ul.menu li a:hover{
    background:url("images/btn_over.png");
}
ul.menu li ul.sub{
    position:absolute;
}
ul.menu{
    zoom:1;
}
ul.menu:after {
    height:0;
    visibility:hidden;
    content:".";
    display:block;
    clear:both;
}



 

01


$(function(){
    $("ul.sub").hide();
    $("ul.menu li").hover(function(){
            $("ul:not(:animated)",this).slideDown("fast")
        },
        function(){
            $("ul",this).slideUp("fast");
    })
})



 uljQueryhover()hover()

$(セレクター).hover(function(){
    マウスオーバー時のイベント
},function(){
    マウスアウト時のイベント
})



 hover()mouseover() mouseout()()mouseover()mouseout()hover()

 slideUp()/slideDown()():not(:animated)()

 



CSS 

floatclearfix


 floatclear:both1clear:bothclearfixCSS

ul.menu:after {
    content:".";
    display:block;
    clear:both;
    height:0;
    visibility:hidden;
}



 floatul menu liul.menuaftercontentdisplayblockclear:bothfloatvisibility:hidden;height:0;

 afterInternet Explorer 6IE6IE7IE6IE7zoom

ul.menu{
    zoom:1;
}







前へ 1 2 次へ

この連載の記事

一覧へ

この記事の編集者は以下の記事をオススメしています