zoukankan      html  css  js  c++  java
  • bootstrap-简单实用的垂直手风琴滑动菜单列表特效

    前端:

    <html lang="zh">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>简单实用的垂直手风琴滑动菜单列表特效|DEMO_jQuery之家-自由分享jQuery、html5、css3的插件库</title>
        <link rel="stylesheet" type="text/css" href="css/normalize.css" />
        <link rel="stylesheet" type="text/css" href="css/default.css">
        <link rel="stylesheet" href="css/style.css">
        <!--[if IE]>
            <script src="http://libs.useso.com/js/html5shiv/3.7/html5shiv.min.js"></script>
        <![endif]-->
    </head>
    <body>
        <article class="htmleaf-container">
            <header class="htmleaf-header">
                <h1>简单实用的垂直手风琴滑动菜单列表特效 <span>Simple Menu with toggle slide animation using jQuery and CSS</span></h1>
                <div class="htmleaf-links">
                    <a class="htmleaf-icon icon-htmleaf-home-outline" href="http://www.htmleaf.com/" title="jQuery之家" target="_blank"><span> jQuery之家</span></a>
                    <a class="htmleaf-icon icon-htmleaf-arrow-forward-outline" href="http://www.htmleaf.com/jQuery/Accordion/201509192591.html" title="返回下载页" target="_blank"><span> 返回下载页</span></a>
                </div>
            </header>
            <div class="htmleaf-content">
                <ul class="mainmenu">
                    <li><img src="images/user.png" alt="User icon" class="icon"><span>Account</span></li>
                    <ul class="submenu">
                        <div class="expand-triangle"></div>
                        <li><span>Basics</span></li>
                        <li><span>Picture</span></li>
                        <li><span>Go Premium</span></li>
                    </ul>
                    <li>
                        <img src="images/envelope.png" alt="Envelope icon" class="icon"><span>Messages</span><div class="messages">23</div>
                    </li>
                    <ul class="submenu">
                        <div class="expand-triangle"></div>
                        <li><span>New</span></li>
                        <li><span>Sent</span></li>
                        <li><span>Trash</span></li>
                    </ul>
                    <li><img src="images/cog.png" alt="Cog icon" class="icon"><span>Settings</span></li>
                    <ul class="submenu">
                        <div class="expand-triangle"></div>
                        <li><span>Language</span></li>
                        <li><span>Password</span></li>
                        <li><span>Notifications</span></li>
                        <li><span>Privacy</span></li>
                        <li><span>Payments</span></li>
                    </ul>
                    <li><img src="images/key.png" alt="Key icon" class="icon"><span>Logout</span></li>
                </ul>
            </div>
        </article>
    
        <script src="http://libs.useso.com/js/jquery/2.1.1/jquery.min.js" type="text/javascript"></script>
        <script>window.jQuery || document.write('<script src="js/jquery-2.1.1.min.js"></script>')</script>
        <script src="js/script.js"></script>
    </body>
    </html>
    

     script.js代码:

    $(document).ready(function () {
        var $submenu = $('.submenu');//<ul class="submenu">
        var $mainmenu = $('.mainmenu');//<ul class="mainmenu">
        $submenu.hide();//所有的都不伸展
        /*
        delay()对被选元素的所有排队函数(仍未运行)设置延迟
        slideDown() 方法以滑动方式显示被选元素。
        注意:slideDown() 适用于通过 jQuery 方法隐藏的元素,或在 CSS 中声明 display:none 隐藏的元素(不适用于通过 visibility:hidden 隐藏的元素)。
        提示:如需以滑动方式隐藏元素,请查看 slideUp() 方法。
        */
        $submenu.first().delay(400).slideDown(700);
        //点击Basics、Picture等左侧变颜色
        $submenu.on('click', 'li', function () {
            /*
            siblings() 方法返回被选元素的所有同级元素。
            同级元素是共享相同父元素的元素。
            */
            $submenu.siblings().find('li').removeClass('chosen');
            $(this).addClass('chosen');
        });
        //点击Account、Messages等展开子元素
        /*
        next() 方法返回被选元素的后一个同级元素。
        同级元素是共享相同父元素的元素。注意:该方法只返回一个元素。
    
        slideToggle() 方法在被选元素上进行 slideUp() 和 slideDown() 之间的切换。
        该方法检查被选元素的可见状态。如果一个元素是隐藏的,则运行 slideDown(),如果一个元素是可见的,则运行 slideUp() - 这会造成一种切换的效果。
    
        slideUp() 方法以滑动方式隐藏被选元素。
        注意:隐藏的元素不会被完全显示(不再影响页面的布局)。
        */
        $mainmenu.on('click', 'li', function () {
            $(this).next('.submenu').slideToggle().siblings('.submenu').slideUp();
        });
        $mainmenu.children('li:last-child').on('click', function () {
            //$mainmenu.fadeOut().delay(500).fadeIn();
        });
    });
    

     部分css代码:

    /*------------ Color Palette ------------*/
    /*
    LIGHT ORANGE: #e4644b
    DARK ORANGE: #d05942
    DARK BROWN: #484141
    Menu text: #f7f1e3
    Submenu text: #ae9f9f
    */
    
    /*------------ General Settings ------------*/
    /*@import url(https://fonts.useso.com/css?family=Montserrat);*/
    
    body {
        margin: 0;
        padding: 0;
        font-family: "Segoe UI", "Lucida Grande", Helvetica, Arial, "Microsoft YaHei", FreeSans, Arimo, "Droid Sans", "wenquanyi micro hei", "Hiragino Sans GB", "Hiragino Sans GB W3", "FontAwesome", sans-serif;
        background: url("../images/bg.jpg") top center no-repeat;
        letter-spacing: 0.2px;
    }
    
    ul {
        list-style: none;
         276px;
    }
    
    li {
        cursor: pointer;
    }
    
    /*------------ Main Menu ------------*/
    .container {
        background-color: black;
    }
    
    /*------------ Main Menu ------------*/
    .mainmenu {
        margin: 90px auto;
        font-size: 16px;
        position: relative;
        padding: 0;
    }
    
        .mainmenu > li {
            background-color: #e4644b;
            border-top: 1px solid #d05942;
            height: 48px;
            color: #f7f1e3;
            box-sizing: border-box;
        }
    
            .mainmenu > li:first-child {
                border-radius: 7px 7px 0 0;
                border-top: 0;
            }
    
            .mainmenu > li:last-child {
                border-radius: 0 0 7px 7px;
            }
    
            .mainmenu > li span {
                display: block;
                line-height: 48px;
            }
    
            .mainmenu > li .icon {
                padding: 14px 20px 0 20px;
                float: left;
                 20px;
                height: 20px;
                display: block;
            }
    
            .mainmenu > li .messages {
                background: url("../images/messages.png") no-repeat;
                padding: 0;
                margin-top: -33px;
                margin-right: 19px;
                float: right;
                display: block;
                 34px;
                height: 18px;
                text-align: center;
                font-size: 11px;
                line-height: 19px;
            }
    
    .expand-triangle {
        background: url("../images/expand.gif") top left no-repeat;
        height: 10px;
         276px;
        content: " ";
        margin-left: -40px;
    }
    
    /*------------ Sub Menu ------------*/
    .submenu {
        box-sizing: border-box;
        color: #ae9f9f;
        font-size: 13px;
        content: " ";
        /*opacity: 0.5;*/
    }
    
        .submenu li {
            line-height: 20px;
            height: 35px;
            padding-top: 11px;
            margin-left: -40px;
            background-color: #484141;
            border-left: solid 6px #484141;
            transition: border-left 220ms ease-in;
        }
    
        .submenu .chosen,
        .submenu .chosen:hover {
            border-left: solid 6px #96d145;
        }
    
        .submenu li:hover {
            border-left: solid 6px #d05942;
        }
    
        .submenu li span {
            margin-left: 30px;
        }
    
    .animate {
        animation: flip 2000ms ease-in-out alternate;
    }
    
    @keyframes flip {
        to {
            transform: rotateY(360deg);
        }
    }
    

     效果:

    引用的demo地址:

    http://www.htmleaf.com/Demo/201509192592.html

  • 相关阅读:
    实现自己的Linq to Sql
    [分享] 浅谈项目需求变更管理
    【分享】老程序员的经验和价值在哪里?
    程序员是自己心中的“上帝”
    [分享]解析“程序员的十大技术烦恼”
    【分享】帮助你早些明白一些道理
    “风雨20年”的20条精辟编程经验
    【分享】 优秀程序员的代码是“活的”
    给开发人员培训时的语录
    【分享】SQL Server优化50法
  • 原文地址:https://www.cnblogs.com/zhyue93/p/bootstrap2.html
Copyright © 2011-2022 走看看