jQuery+CSS实现多级下拉菜单

HTML,ASP,JSP,PHP    2010-01-06 11:26  

  随着计算机网络、通信技术的迅速发展,特别是Internet的发展应用,使人们的行为方式受到巨大的冲击及影响。电子商务作为一种崭新的商务运作方式,带来了一次新的产业革命,这场革命的最终结果将人类带入了信息经济时代。电子商务网站出现如雨后春笋,但中国电子商务的发展较之发达国家尚处于起步阶段,

  今天电子商务网站我们随处可见,如淘宝、拍拍、百度有啊……。电子商务在发展,网站技术也在不段的更新。由于电子商务网站的产品和种类的不段增加,以往的一级下拉菜单已经远不能满足现有电子商务网站发展了,多级下拉菜单是今后电子商务网站的新趋势。

  一个好的菜单,能为电子商务网站增色不少。下面我就用jQuery+CSS来制做一款多级的下拉菜单。

jQuery+CSS实现多级下拉菜单

jQuery+CSS实现多级下拉菜单

演示地址:http://www.56mp.cn/upload/mega-dropdowns/

 HTML部分:

就像我的所有导航教程一样,首先创建一个无序列表。

<ul id="topnav">
    <li><a href="http://www.56mp.cn" class="home">Home</a></li>
    <li><a href="http://www.56mp.cn" class="products">Products</a></li>
    <li><a href="http://www.56mp.cn" class="sale">Sale</a></li>
    <li><a href="http://www.56mp.cn" class="community">Community</a></li>
    <li><a href="http://www.56mp.cn" class="store">Store Locator</a></li>
</ul>

  CSS部分:

  由于我们的下拉菜单将使用绝对定位,所以一定要添加一个相对定位的列表项。

  ul#topnav {
margin: 0; padding: 0;
float:left;
width: 100%;
list-style: none;
font-size: 1.1em;
}
ul#topnav li {
float: left;
margin: 0; padding: 0;
position: relative;
}
ul#topnav li a {
float: left;
text-indent: -9999px;
height: 44px;
}
ul#topnav li:hover a, ul#topnav li a:hover { background-position: left bottom; }
ul#topnav a.home {
background: url(nav_home.png) no-repeat;
width: 78px;
}
ul#topnav a.products {
background: url(nav_products.png) no-repeat;
width: 117px;
}
ul#topnav a.sale {
background: url(nav_sale.png) no-repeat;
width: 124px;
}
ul#topnav a.community {
background: url(nav_community.png) no-repeat;
width: 124px;
}
ul#topnav a.store {
background: url(nav_store.png) no-repeat;
width: 141px;
}

  子菜单HTML:

添加好子菜单后,每个无序列表要嵌套相应的类值。

Www.Hdut.Com

无序列表嵌套相应的类值

<ul id="topnav">
    <li><a href="#" class="home">Home</a></li>

    <li>
    <a href="#" class="products">Products</a>
        <div class="sub">
            <ul>
                <li><h2><a href="#">Desktop</a></h2></li>
                <li><a href="#">Navigation Link</a></li>
                <li><a href="#">Navigation Link</a></li>
            </ul>
            <ul>
                <li><h2><a href="#">Laptop</a></h2></li>
                <li><a href="#">Navigation Link</a></li>
                <li><a href="#">Navigation Link</a></li>
            </ul>
            <ul>
                <li><h2><a href="#">Accessories</a></h2></li>
                <li><a href="#">Navigation Link</a></li>
                <li><a href="#">Navigation Link</a></li>
            </ul>
            <ul>
                <li><h2><a href="#">Accessories</a></h2></li>
                <li><a href="#">Navigation Link</a></li>
                <li><a href="#">Navigation Link</a></li>
            </ul>
        </div>
    </li>
    <li><a href="#" class="sale">Sale</a></li>
    <li><a href="#" class="community">Community</a></li>
    <li><a href="#" class="store">Store Locator</a></li>
</ul>

  子菜单CSS:

  ul#topnav li .sub {
position: absolute;
top: 44px; left: 0;
background: #344c00 url(sub_bg.png) repeat-x;
padding: 20px 20px 20px;
float: left;
-moz-border-radius-bottomright: 5px;
-khtml-border-radius-bottomright: 5px;
-webkit-border-bottom-right-radius: 5px;
-moz-border-radius-bottomleft: 5px;
-khtml-border-radius-bottomleft: 5px;
-webkit-border-bottom-left-radius: 5px;
display: none;
}
ul#topnav li .row {
clear: both;
float: left;
width: 100%;
margin-bottom: 10px;
}
ul#topnav li .sub ul{
list-style: none;
margin: 0; padding: 0;
width: 150px;
float: left;
}
ul#topnav .sub ul li {
width: 100%;
color: #fff;
}
ul#topnav .sub ul li h2 {
padding: 0;  margin: 0;
font-size: 1.3em;
font-weight: normal;
}
ul#topnav .sub ul li h2 a {
padding: 5px 0;
background-image: none;
color: #e8e000;
}
ul#topnav .sub ul li a {
float: none;
text-indent: 0;
height: auto;
background: url(navlist_arrow.png) no-repeat 5px 12px;
padding: 7px 5px 7px 15px;
display: block;
text-decoration: none;
color: #fff;
}
ul#topnav .sub ul li a:hover {
color: #ddd;
background-position: 5px 12px ;
}

  用jQuery设置鼠标悬停效果

  对于那些谁不熟悉jQuery的,你可以看看他们的网站。

  调用jQuery的文件

  <script type="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

  设置自定义配置和触发功能

  //Set custom configurations
var config = {
     sensitivity: 2, 
     interval: 100, 
     over: megaHoverOver, 
     timeout: 500, 
     out: megaHoverOut
};

$("ul#topnav li .sub").css({'opacity':'0'});
$("ul#topnav li").hoverIntent(config);

在线留言

我要留言