1. 程式人生 > >JQuery實現選單切換--以百度地圖的InfoWindow為例

JQuery實現選單切換--以百度地圖的InfoWindow為例

  在網頁設計中,很多元素的外觀顯示與其真正的內部實現其實並不完全一致,正如前邊qq的顯示面板示例一樣,給人的直觀感覺有點小複雜,但其實質就是個ul。本文所示例的切換選單也一樣,外觀看起來也有點複雜,但其實質很簡單,同樣可以通過ul實現。

本文使用JQuery來實現,相對於JavaScript來說,簡化了DOM的很多操作,特別是選擇器的使用,省去了迴圈選擇元素。當然,首先你得引入JQuery,頁面程式碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>選單切換</title>
    <meta name="description" content="" />
    <link href="Styles/myInfoWindow.css" rel="stylesheet" type="text/css" />
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            $("#nav li").click(function () {
                $(this).attr("class", "current"); //設定當前點選選單的樣式
                $(this).siblings().attr("class", ""); //設定當前點選選單外的選單樣式
                $("#con_" + this.id).show();
                $("#con_" + this.id).siblings().hide();
            });
            $("#menu_con div:first").show();
            $("#menu_con div:first").siblings().hide();
        });
        
    </script>
</head>
<body>

<div id="menu_out">
    <div id="menu_in">
        <div id="menu">
            <ul id="nav">
                <li id="one1" class="current"><span>從這裡出發</span></li>
                <li id="one2"><span>到這裡去</span></li>
                <li id="one3"><span>經過這裡</span></li>
                <li id="one4"><span>在附近找</span></li>
            </ul><!--nav end-->
            <div id="menu_con">
                <div id="con_one1">
                <br />
                    <span>終點:</span><input type="text" class="queryCon" />  <input id="byBusTo" class="btn" type="button" value="公交"/>  <input id="byCarTo" class="btn" type="button" value="駕車"/>
                </div>
                <div id="con_one2">
                <br />
                    <span>起點:</span><input type="text" class="queryCon" />  <input id="byBusFrom" class="btn" type="button" value="公交"/>  <input id="byCarFrom" class="btn" type="button" value="駕車"/>
                </div>
                <div id="con_one3">
                 <br />
                    <span>經過這裡....</span>
                </div>
                <div id="con_one4">
                <br />
                   <a href="">酒店</a><a href="">餐館</a><a href="">銀行</a><a href="">醫院</a>
                      <input type="text" class="query" />  <input id="search" class="btn" type="button" value="搜尋"/> 
                </div>
            </div><!--menu_con end-->
        </div><!--menu end-->
    </div>
</div>

</body>
</html>
頁面對應的顯示樣式檔案為myInfoWindow.css,程式碼如下:
.queryCon{
    color:#d3d3d3;
    font-family: Arial;
    font-size:16px;
    border:solid 1px gray;
    width: 160px;
    height:16px;
}
.query{
    color:#d3d3d3;
    font-family: Arial;
    font-size:16px;
    border:solid 1px gray;
    width: 100px;
    height:16px;
}
.btn {
    border: 0 none;
    background-color:#4169e1;
    padding:3px 3px 3px 3px;
    color:white;
    cursor: pointer;
    font-size: 12px;
    height: 22px;
    width: 51px;
}
 /*全域性樣式*/
*{font-size:12px;}
body
{
    margin:0;
    padding:0;
    background-color:#FFFFFF;
    font-size:10px;
    color:#666666;
    font-family:"宋體",Arial, Helvetica, sans-serif;
}
/*主導航選單*/
#menu ul
{
    padding:0;
    border:0;
    list-style:none;
    margin-top:0;
    margin-right:0;
    margin-bottom:0;
    margin-left:10px;
}
/* margin 外邊距設定 */
#menu_out
{
    padding-left:1px;
    margin:10px auto;
}
#nav li
{
    float:left;
    display:block;
    padding-left:6px;
    height:25px;
    background-color:lightblue;
    cursor:pointer;
    text-decoration:none;
}
#nav li span
{
    float:left;
    padding:5px 10px 5px 10px;
    line-height:13px;
    font-size:12px;
    font-weight:bold;
    color:blue;
}
#nav .current
{
    background-position:left 30%;
    background-color:#4169e1;
}
#nav .current span
{
    float:left;
    padding:5px 10px 5px 10px;
    line-height:13px;
    font-size:12px;
    font-weight:bold;
    color:white;
}
/*子欄目*/
#menu_con
{
    text-align:left;
    padding-left:20px;
    clear:both;
}
#menu_con li
{
    float:left;
    height:22px;
    margin-top:8px;
}
#menu_con div span
{
    float:left;
    font-size:12px;
    font-weight:bold;
    padding:3px 3px 1px 3px;
    line-height:14px;
} 
#menu_con div a
{
    padding:5px 2px 5px 2px;
    font-size:10px;
    text-decoration:none;
    color:#4169e1;
}
#menu_con div a:hover
{
    padding:5px 2px 5px 2px;
    font-size:10px;
    text-decoration:underline;
    color:#4169e1;
}      
頁面效果如下:

本文的示例,是在單擊一級選單時顯示其所對應的內容,同樣也可以使用onmouseover等事件,一級選單對應的內容也可以使用ul構建一個二級選單。當然,這只是一個很簡單的示例,大家可以根據自己的需求進一步進行擴充套件。