让前端飞前端知识JQuery

JQuery实现二级菜单,stop方法分析

2019-05-05  本文已影响2人  一木一生

效果图

完整效果图

一、HTML

    <div class="wrapper">
        <ul class="nav">
            <li>
                <a href="#">明星</a>
                <ul class="detail">
                    <li><a href="#">胡歌</a></li>
                    <li><a href="#">黄晓明</a></li>
                    <li><a href="#">马思纯</a></li>
                </ul>
            </li>
            <li>
                <a href="#">演员</a>
                <ul class="detail">
                    <li><a href="#">李幼斌</a></li>
                    <li><a href="#">何冰</a></li>
                    <li><a href="#">胡军</a></li>
                </ul>
            </li>
            <li>
                <a href="#">歌手</a>
                <ul class="detail">
                    <li><a href="#">蔡徐坤</a></li>
                    <li><a href="#">吴亦凡</a></li>
                    <li><a href="#">鹿晗</a></li>
                </ul>
            </li>
        </ul>
    </div>

二、CSS

CSS没有什么,只需要稍微关注一下提到的细节点就行了。

        * {margin: 0px;padding: 0px;}
        
        ul {list-style-type: none;}
        
        a {text-decoration: none;color: black;}

        .wrapper {width: 300px;}

        .wrapper ul.nav::after {
            content: "";
            display: block;
            clear: both;
        }

        .wrapper ul li {
            height: 30px;
            /*  此处height是功能实现的关键,固定高度height==line-hieght使得:
             *  当ul.detail display时呈现overflow效果,不会额外占据地方,不会将wrapper撑大,
             */
            float: left;
            text-align: center;
            font-size: 14px;
            width: 100px;
            line-height: 30px;
            background-color: rgb(88, 187, 190);
            cursor: pointer;
        }

        .wrapper ul li:hover{color: white;}

        .wrapper ul li ul.detail {display: none;}

        .wrapper ul li ul li {background-color: rgb(129, 221, 224);}

        .wrapper ul li ul li:hover {background-color: rgb(178, 246, 248);}

细节点:

三、JQuery

    <script src="http://libs.baidu.com/jquery/1.7.1/jquery.min.js"></script>
    <script>
        $(function () {
            // stop很重要,试验了好久.......这种写法算是比较满意的动画效果
            $("div ul.nav>li").mouseenter(function () {
                $(this).find(".detail").stop(true, true)
                    .show("fast");
            }).mouseleave(function () {
                $(this).find(".detail").hide("fast");
            })
        });
    </script>

重点:

完整代码:链接:https://pan.baidu.com/s/1BavI1UGR_PzUPMernS4xmg 提取码:f0oa

作者简介:一木一生,一个散发着单身狗清香的程序猿。同时,欢迎关注我的CSDN博客 Vito_w7
本文为作者原创,未经允许,不得转载,违者必究!

上一篇 下一篇

猜你喜欢

热点阅读