Welcome, Old Sport!

一款活动下拉式菜单的制作 ( jQuery & CSS )

by ilikecss ON 2010/08/17 5660

之前介绍过几款导航的制作,反应比较好,今天再为大家介绍一款有子菜单的导航,也是利用 CSS & jQuery 功能制作的。

Step1. 创建HTML

<ul class="topnav">
    <li><a href="#">Home</a></li>
    <li>
    <a href="#">About Me</a>
    <ul class="subnav">
    <li><a href="#">Sub Nav Link</a></li>
    <li><a href="#">Sub Nav Link</a></li>
    </ul>
    </li>
    <li>
    <a href="#">Portfolio</a>
    <ul class="subnav">
    <li><a href="#">Sub Nav Link</a></li>
    <li><a href="#">Sub Nav Link</a></li>
    <li><a href="#">Sub Nav Link</a></li>
    <li><a href="#">Sub Nav Link</a></li>
    <li><a href="#">Sub Nav Link</a></li>
    </ul>
    </li>
    <li><a href="#">Blog</a>
    <ul class="subnav">
    <li><a href="#">Sub Nav Link</a></li>
    <li><a href="#">Sub Nav Link</a></li>
    <li><a href="#">Sub Nav Link</a></li>
    </ul>
    </li>
    <li><a href="#">Contact Me</a></li>
    <li><a href="#">Rss</a></li>
</ul>

Step2. 创建CSS

ul.topnav {
width: 710px;
padding: 0 0 200px 0;
float: left;
background: #222;
background: url(../images/topnav_bg.gif) repeat-x;
}
ul.topnav li {
float: left;
margin: 0;
padding: 0 10px 0 15px;
position: relative; /*--Declare X and Y axis base for sub navigation--*/
display: inline;
}
ul.topnav li a {
padding: 10px 5px;
color: #fff;
display: block;
text-decoration: none;
float: left;
}
ul.topnav li a:hover {
background-color: #333;
-moz-border-radius: 3px; /*--CSS3 Rounded Corners--*/
-khtml-border-radius: 3px; /*--CSS3 Rounded Corners--*/
-webkit-border-radius: 3px; /*--CSS3 Rounded Corners--*/
}
ul.topnav li span { /*--Drop down trigger styles--*/
width: 17px;
height: 35px;
float: left;
background: url(../images/subnav_btn.gif) no-repeat center top;
}
ul.topnav li span.subhover { /*--Hover effect for trigger--*/
background-position: center bottom; cursor: pointer;
}
ul.topnav li ul.subnav {
width: 170px;
position: absolute; /*--Important - Keeps subnav from affecting main navigation flow--*/
left: 0; top: 35px;
background: #333;
margin: 0; padding: 0;
display: none;
float: left;
border: 1px solid #111;
}
ul.topnav li ul.subnav li{
width: 170px;
margin: 0; padding: 0;
border-top: 1px solid #252525; /*--Create bevel effect--*/
border-bottom: 1px solid #444; /*--Create bevel effect--*/
clear: both;
}
html ul.topnav li ul.subnav li a {
width: 145px;
float: left;
background-color: #333;
padding-left: 20px;
font-size: 0.9em;
}
html ul.topnav li ul.subnav li a:hover { /*--Hover effect for subnav links--*/
background-color: #222;
}

Step3. 插入jQuery和脚本包

$(document).ready(function(){   

    $("ul.subnav").parent().append("<span></span>"); //Only shows drop down trigger when js is enabled (Adds empty span tag after ul.subnav*)   

    $("ul.topnav li span").mouseover(function() { //When trigger is clicked...   

        //Following events are applied to the subnav itself (moving subnav up and down)
        $(this).parent().find("ul.subnav").slideDown('fast').show(); //Drop down the subnav on click   

        $(this).parent().hover(function() {
        }, function(){
            $(this).parent().find("ul.subnav").slideUp('slow'); //When the mouse hovers out of the subnav, move it back up
        });   

        //Following events are applied to the trigger (Hover events for the trigger)
        }).hover(function() {
            $(this).addClass("subhover"); //On hover over, add class "subhover"
        }, function(){  //On Hover Out
            $(this).removeClass("subhover"); //On hover out, remove class "subhover"
    });   

});
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
5条评论
  1. #1

    和意未来说道:

    这些东西都挺实用的

  2. #2

    majw说道:

    能把这个打包一下吗?

  3. #3

    majw说道:

    好的,非常感谢。




TOP