jQuery实现一个淡入淡出下拉菜单 非常简易

前段时间我一直在向大家推荐CSS3和HTML5的东西,尽管看上去很炫,但也有不少网友抱怨兼容性问题,所以今天开始我也会陆续向大家介绍一些兼容性较好的jQuery插件。今天先分享一款利用jQuery实现的淡入淡出下拉菜单,看上去非常简单。先看看效果图。

虽然简单,但看上去还是蛮不错的,不是吗?

我们也可以从这里看到完整的DEMO演示

接下来我们来简单看看这款下拉菜单源代码,先从HTML代码开始:

<ul class="navigation">
    <li><a href="#">Main Cat 1</a></li>
    <li><a href="#">Main Cat 2  </a>
        <ul>
            <li><a href="#">Sub Cat 2-1</a></li>
            <li><a href="#">Sub Cat 2-2</a></li>
            <li><a href="#">Sub Cat 2-3</a></li>
            <li><a href="#">Sub Cat 2-4</a></li>
            <li><a href="#">Sub Cat 2-5</a></li>
        </ul>
        <div class="clear"></div>
    </li>
    <li><a href="#">Main Cat 3 </a>
    <ul>
        <li><a href="#">Sub Cat 3-1</a></li>
        <li><a href="#">Sub Cat 3-2</a></li>
        <li><a href="#">Sub Cat 3-3</a></li>
        <li><a href="#">Sub Cat 3-4</a></li>
        <li><a href="#">Sub Cat 3-5</a></li>
        <li><a href="#">Sub Cat 3-6</a></li>
        <li><a href="#">Sub Cat 3-7</a></li>
    </ul>            
        <div class="clear"></div>
    </li>
    <li><a href="#">Main Cat </a></li>
</ul>

然后是CSS代码:

/* Giving a font-family and Size to give good look */
    body{
        font-family: Arial, Helvetica,sans-serif; 
        font-size:15px;
    }
    
    /* Adjusting the margins, paddings and no list styles */
    .navigation  {
        margin:0; 
        padding:0; 
        list-style:none;
    }    
    
    /* Little tricking with positions */
    .navigation  li {
        float:left;            /* Show list items inline */
        width:150px; 
        position:relative; 
    }
        
    /* Playing with Main Categories */
    .navigation  li a {
        background:#262626; 
        color:#fff;
        display:block;      /* Making sure a element covers whole li area */
        padding:8px 7px 8px 7px; 
        text-decoration:none; /* No underline */
        border-top:1px solid #F2861D;
        text-align:center; 
        text-transform:uppercase;
    }

    .navigation  li a:hover {
        color:#F2861D;
    }
        
    /* Sub Cat Menu stuff*/
    .navigation  ul {
        position:absolute; 
        left:0; 
        display:none; /* Hide it by default */
        margin:0 0 0 -1px; 
        padding:0; 
        list-style:none;
        border-bottom:3px solid #F2861D;
    }
        
    .navigation  ul li {
        width:150px; 
        float:left; 
        border-top:none;
    }
        
    /* Sub Cat menu link properties */
    .navigation  ul a {
        display:block;        /* Making sure a element covers whole li area */
        height:15px;
        padding:8px 7px 13px 7px; 
        color:#fff;
        text-decoration:none;    
        border-top:none;
        border-bottom:1px dashed #6B6B6B;
    }
        
    .navigation  ul a:hover {
        color:#F2861D;
    }

接下来是重要的jQuery代码,主要是实现下拉时淡入淡出的效果:

$(document).ready(function () {    
    // hover property will help us set the events for mouse enter and mouse leave
    $('.navigation li').hover(
        // When mouse enters the .navigation element
        function () {
            //Fade in the navigation submenu
            $('ul', this).fadeIn();     // fadeIn will show the sub cat menu
        }, 
        // When mouse leaves the .navigation element
        function () {
            //Fade out the navigation submenu
            $('ul', this).fadeOut();     // fadeOut will hide the sub cat menu        
        }
    );
});

这里用了jQuery的fadeIn()和fadeOut()方法,熟悉jQuery的同学一定不会对它们陌生。

另外,大家可以在这里看到更多漂亮的CSS3菜单,兼容性问题大家自己取舍吧,呵呵。

最后把这款菜单的源码代码分享一下,下载地址>>

posted @ 2014-04-19 10:30  html5tricks  阅读(3575)  评论(2编辑  收藏  举报