jQuery小试之菜单栏

来源:岁月联盟 编辑:exp 时间:2012-07-18

 这次要写的是一对菜单栏:一横一纵,有淡入淡出的效果,同时随着鼠标点击指示图标修改。

        前台界面:

       /

        HTML代码:


[html] 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
        <link href="css/menu.css" rel="stylesheet" type="text/css" /> 
        <script src="js/jquery.js" type="text/javascript"></script> 
        <script src="js/menu.js" type="text/javascript"></script> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
        <ul> 
                <li class="main"> 
                <a href="#">文件</a> 
                        <ul> 
                        <li><a href="#">新建</a></li> 
                        <li><a href="#">保存</a></li> 
                        </ul> 
                </li> 
                <li class="main"><a href="#">编辑</a> 
                <ul> 
                        <li><a href="#">复制</a></li> 
                        <li><a href="#">查找</a></li> 
                        </ul> 
                </li> 
                <li class="main"><a href="#">帮助</a> 
                <ul> 
                        <li><a href="#">检查更新</a></li> 
                        <li><a href="#">版本说明</a></li> 
                        </ul> 
                </li> 
        </ul> 
    </div> 
    <p>分割线————————分割线</p> 
 <div> 
        <ul> 
                <li class="hmain"> 
                <a href="#">文件</a> 
                        <ul> 
                        <li><a href="#">新建</a></li> 
                        <li><a href="#">保存</a></li> 
                        </ul> 
                </li> 
                <li class="hmain"><a href="#">编辑</a> 
                <ul> 
                        <li><a href="#">复制</a></li> 
                        <li><a href="#">查找</a></li> 
                        </ul> 
                </li> 
                <li class="hmain"><a href="#">帮助</a> 
                <ul> 
                        <li><a href="#">检查更新</a></li> 
                        <li><a href="#">版本说明</a></li> 
                        </ul> 
                </li> 
        </ul> 
    </div> 
    </form> 
</body> 
</html> 

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
        <link href="css/menu.css" rel="stylesheet" type="text/css" />
        <script src="js/jquery.js" type="text/javascript"></script>
        <script src="js/menu.js" type="text/javascript"></script>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <ul>
                <li class="main">
                <a href="#">文件</a>
                        <ul>
                        <li><a href="#">新建</a></li>
                        <li><a href="#">保存</a></li>
                        </ul>
                </li>
                <li class="main"><a href="#">编辑</a>
                <ul>
                        <li><a href="#">复制</a></li>
                        <li><a href="#">查找</a></li>
                        </ul>
                </li>
                <li class="main"><a href="#">帮助</a>
                <ul>
                        <li><a href="#">检查更新</a></li>
                        <li><a href="#">版本说明</a></li>
                        </ul>
                </li>
        </ul>
    </div>
    <p>分割线————————分割线</p>
 <div>
        <ul>
                <li class="hmain">
                <a href="#">文件</a>
                        <ul>
                        <li><a href="#">新建</a></li>
                        <li><a href="#">保存</a></li>
                        </ul>
                </li>
                <li class="hmain"><a href="#">编辑</a>
                <ul>
                        <li><a href="#">复制</a></li>
                        <li><a href="#">查找</a></li>
                        </ul>
                </li>
                <li class="hmain"><a href="#">帮助</a>
                <ul>
                        <li><a href="#">检查更新</a></li>
                        <li><a href="#">版本说明</a></li>
                        </ul>
                </li>
        </ul>
    </div>
    </form>
</body>
</html>        CSS代码:[html] view plaincopyprint?ul 

        /*去掉左缩进*/ 
        padding:0px; 
        margin:0px; 
        /*去掉圆点*/ 
        list-style :none; 
        } 
.main,.hmain 

        background-image:url("../images/title.gif"); 
        background-repeat:repeat-x; 
        width:120px; 
          } 
li 

                /*去掉圆点*/ 
        list-style :none; 
        background-color :#eeeeee; 
        } 
.main a,.hmain a 

        color:White; 
        background-image:url("../images/collapsed.gif"); 
        background-repeat:no-repeat ; 
        /*调整三角位置*/ 
        background-position :5px center; 
          /*取消下划线更改颜色*/ 
        text-decoration:none; 
        padding-left:20px; 
        display :block; 
        /*为了兼容ie6*/ 
        display:inline-block ; 
        } 
.main li  a,.hmain li a 

        color:black; 
        background-image:none; 
        } 
.main ul,.hmain ul 

        /*隐藏子菜单*/ 
       display:none; 
        } 
.hmain 

        float:left; 
        } 

ul
{
        /*去掉左缩进*/
        padding:0px;
        margin:0px;
        /*去掉圆点*/
        list-style :none;
        }
.main,.hmain
{
        background-image:url("../images/title.gif");
        background-repeat:repeat-x;
        width:120px;
          }
li
{
                /*去掉圆点*/
        list-style :none;
        background-color :#eeeeee;
        }
.main a,.hmain a
{
        color:White;
        background-image:url("../images/collapsed.gif");
        background-repeat:no-repeat ;
        /*调整三角位置*/
        background-position :5px center;
          /*取消下划线更改颜色*/
        text-decoration:none;
        padding-left:20px;
        display :block;
        /*为了兼容ie6*/
        display:inline-block ;
        }
.main li  a,.hmain li a
{
        color:black;
        background-image:none;
        }
.main ul,.hmain ul
{
        /*隐藏子菜单*/
       display:none;
        }
.hmain
{
        float:left;
        }        JavaScript代码:[javascript] view plaincopyprint?$(document).ready(function () { 
        $(".main > a").click(function () { 
                //找到对应子项  
                var ulNode = $(this).next("ul"); 
                //多种隐藏方式,第一种通过css  
                /*if (ulNode.css("display") == "none") {
                ulNode.css("display", "block");
                }
                else {
                ulNode.css("display", "none");
                }*/ 
                //第二种方法 show() 和hide() //ulNode.show("slow");  
                //第三种方法 toggle()   //ulNode.toggle("slow");  
                // 第四种方法 slidedown()和slideup()  //ulNode.slideDown();  
                //第五种方法 slideToggle()  
                ulNode.slideToggle(); 
                changeIcon($(this)); 
            }) 
        //可以这样达到出现小手的动作  
        //        $(".hmain > a").hover(function () {  
        //                //找到对应子项  
        //                var ulNode = $(this).next("ul");  
        //                ulNode.slideToggle();  
        //        })  
        /*更简单的思路*/ 
        $(".hmain").hover(function () { 
                $(this).children("ul").slideDown(); 
                changeIcon($(this).children("a")); 
        }, function () { 
                 $(this).children("ul").slideUp(); 
                 changeIcon($(this).children("a")); 
        }) 
 }) 
 /*
 *修改指示图标
 */ 
 function changeIcon(mainNode) { 
         if (mainNode) { 
                 if (mainNode.css("background-image").indexOf("collapsed.gif")>=0) { 
                         mainNode.css("background-image", "url('images/expanded.gif')"); 
                 } 
                 else { 
                         mainNode.css("background-image", "url('images/collapsed.gif')"); 
                 } 
            } 
 } 

$(document).ready(function () {
        $(".main > a").click(function () {
                //找到对应子项
                var ulNode = $(this).next("ul");
                //多种隐藏方式,第一种通过css
                /*if (ulNode.css("display") == "none") {
                ulNode.css("display", "block");
                }
                else {
                ulNode.css("display", "none");
                }*/
                //第二种方法 show() 和hide() //ulNode.show("slow");
                //第三种方法 toggle()   //ulNode.toggle("slow");
                // 第四种方法 slidedown()和slideup()  //ulNode.slideDown();
                //第五种方法 slideToggle()
                ulNode.slideToggle();
                changeIcon($(this));
            })
        //可以这样达到出现小手的动作
        //        $(".hmain > a").hover(function () {
        //                //找到对应子项
        //                var ulNode = $(this).next("ul");
        //                ulNode.slideToggle();
        //        })
        /*更简单的思路*/
        $(".hmain").hover(function () {
                $(this).children("ul").slideDown();
                changeIcon($(this).children("a"));
        }, function () {
                 $(this).children("ul").slideUp();
                 changeIcon($(this).children("a"));
        })
 })
 /*
 *修改指示图标
 */
 function changeIcon(mainNode) {
         if (mainNode) {
                 if (mainNode.css("background-image").indexOf("collapsed.gif")>=0) {
                         mainNode.css("background-image", "url('images/expanded.gif')");
                 }
                 else {
                         mainNode.css("background-image", "url('images/collapsed.gif')");
                 }
            }
 }        效果图:

 /


        jQuery更多效果函数还等待在以后更多的实践中运用,如果发现哪里有误或是可以优化,欢迎指教。

        您还可以:亲自体验效果

 作者:lidaasky