1. 程式人生 > >46 jQuery-列表中的導航選單

46 jQuery-列表中的導航選單

1. 效果圖

在這裡插入圖片描述

2.html程式碼

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
    <title>45 jQuery-列表中的導航選單</title>
        <style type="text/css">
           body{font-size:13px}
           ul,li{list-style-type:none;padding:0px;margin:0px}
           .menu{width:190px;border:solid 1px #E5D1A1;background-color:#FFFDD2}
           .optn{width:190px;line-height:28px; border-top:dashed 1px #ccc}
           .content{padding-top:10px;clear:left}
           a{text-decoration:none;color:#666;padding:10px}
           .optnFocus{background-color:#fff;font-weight:bold} div{padding:10px}
           div img{float:left;padding-right:6px;}
           span{padding-top:3px;font-size:14px;font-weight:bold;float:left}
           .tip{width:190px;border:solid 2px #ffa200;position:absolute;padding:10px;
           		background-color:#fff;display:none}
           .tip li{line-height:23px;}
           #sort{position:absolute;display:none}
           img{width: 20px;height: 20px;}
    </style>
</head>
<body>
 	  <ul>
        <li class="menu">
            <div>
                 <img alt="" src="../img/pig.jpg" />
                 <span>電腦數碼類產品</span>
            </div>
            <ul class="content">
               <li class="optn"><a href=" ">筆記本</a></li>
               <ul class="tip">
                   <li><a href="#">筆記本1</a></li>
                   <li><a href="#">筆記本2</a></li>
                   <li><a href="#">筆記本3</a></li>
                   <li><a href="#">筆記本4</a></li>
                   <li><a href="#">筆記本5</a></li>
               </ul>
               <li class="optn"><a href="#">行動硬碟</a></li>
               <ul class="tip">
                    <li><a href="#">行動硬碟1</a></li>
                    <li><a href="#">行動硬碟2</a></li>
                    <li><a href="#">行動硬碟3</a></li>
                    <li><a href="#">行動硬碟4</a></li>
                    <li><a href="#">行動硬碟5</a></li>
               </ul>
               <li class="optn"><a href="#">電腦軟體</a></li>
               <ul class="tip">
                   <li><a href="#">電腦軟體1</a></li>
                   <li><a href="#">電腦軟體2</a></li>
                   <li><a href="#">電腦軟體3</a></li>
                   <li><a href="#">電腦軟體4</a></li>
                   <li><a href="#">電腦軟體5</a></li>
               </ul>
               <li class="optn"><a href="#">數碼產品</a></li>
               <ul class="tip">
                   <li><a href="#">數碼產品1</a></li>
                   <li><a href="#">數碼產品2</a></li>
                   <li><a href="#">數碼產品3</a></li>
                   <li><a href="#">數碼產品4</a></li>
                   <li><a href="#">數碼產品5</a></li>
                </ul>
             </ul>
             <img id="sort" src="../img/right.png" alt=""/>
         </li>
       </ul>
              
<script src="../jquery.min.js"></script>
<script type="text/javascript">
$(function() {               
	var curY; //獲取所選項的Top值
    var curH; //獲取所選項的Height值
    var curW; //獲取所選項的Width值
    var srtY; //設定提示箭頭的Top值
    var srtX; //設定提示箭頭的Left值
    var objL; //獲取當前物件
    /*
    *設定當前位置數值
    *引數obj為當前物件名稱
    */
    function setInitValue(obj) {
        curY = obj.offset().top
        curH = obj.height();
        curW = obj.width();
        srtY = curY + (curH / 2) + "px"; //設定提示箭頭的Top值
        srtX = curW - 5 + "px"; //設定提示箭頭的Left值
     }
    //設定當前所選項的滑鼠滑過事件
    $(".optn").mouseover(function() {
        objL = $(this); //獲取當前物件
        setInitValue(objL); //設定當前位置
        var allY = curY - curH + "px"; //設定提示框的Top值
        objL.addClass("optnFocus"); //增加獲取焦點時的樣式            
        objL.next("ul").show().css({ "top": allY, "left": curW }) //顯示並設定提示框的座標
        $("#sort").show().css({ "top": srtY, "left": srtX }); //顯示並設定提示箭頭的座標
     })
      //設定當前所選項的滑鼠移出事件
      .mouseout(function() {
          $(this).removeClass("optnFocus"); //刪除獲取焦點時的樣式
          $(this).next("ul").hide(); //隱藏提示框
          $("#sort").hide(); //隱藏提示箭頭
      })
      $(".tip").mousemove(function() {
          $(this).show();  //顯示提示框
          objL = $(this).prev("li"); //獲取當前的上級li物件
          setInitValue(objL); //設定當前位置
          objL.addClass("optnFocus"); //增加上級li物件獲取焦點時的樣式
          //顯示並設定提示箭頭的座標
          $("#sort").show().css({ "top": srtY, "left": srtX });
       })
       .mouseout(function() {
           $(this).hide(); //隱藏提示框
           $(this).prev("li").removeClass("optnFocus"); //刪除獲取焦點時的樣式
           $("#sort").hide(); //隱藏提示箭頭
        })
})
</script>
</body>
</html>