jquery垂直展开折叠手风琴二级菜单

最近新开发一个简单项目,用到左侧两级的菜单。习惯性的去网上扒jquery手风琴效果,结果悲剧了好久…… 是该认认真真去学jquery,练习自己写动画效果了。从理解别人代码开始吧!

注:jquery-1.8.3.min.js需要下载文件放到同级名为js的文件夹里。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>jquery垂直展开折叠手风琴效果</title>
    <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
    <style type="text/css">
        body {
            margin: 0px;
            padding: 0px;
            font-family: "微软雅黑";
            font-size: 12px;
        }

        div, ul, li, ol, dl, dt, dd, img, p, h1, h2, h3, p, table, td, th {
            margin: 0px;
            padding: 0px;
            list-style-type: none;
            border: 0;
        }

        a {
            text-decoration: none;
        }

     /* 侧导航 */
        .menu {
            width: 195px;
            background-color: #cfe5ec;
        }

         .menu ul {
             width: 195px;
             padding-top: 5px;
         }

      .menu li {
          background: #3E8ED5;
          line-height: 30px;
          color: #4f4f4f;
          display: block;
          text-indent: 3em;
          margin-top: 1px;
      }

        .menu li a {
            height: 30px;
            display: block;
            color: white;
        }

            .menu li a:hover {
                height: 30px;
                display: block;
                color: #4f4f4f;
            }

        .cur {
            background: #2668cb;
            font-weight: bold;
        }
        .submenu {
            font-size: 12px;
        }

            .submenu li {
                height:30px;
                line-height:30px;
                background: #48A1F0;
            }

            .submenu a {
                display: block;
                text-decoration: none;
                color: #d9d9d9;
                -webkit-transition: all 0.25s ease;
                -o-transition: all 0.25s ease;
                transition: all 0.25s ease;
            }

        .submenu a:hover {
            background: #2668cb;
            color: #FFF;
        }
    </style>

</head>
<body>
    <div>
        <ul class="menu" id="ulmenu">
            <li>
                <a>开发语言</a>
                <ul class="submenu">
                  <li><a onclick="changeStyle(1);" sysId="1" href="#" >Java</a></li>
                  <li><a onclick="changeStyle(2);" sysId="2" href="#" >NET</a></li>
                  <li><a onclick="changeStyle(3);" sysId="3" href="#" >VB</a></li>
                  <li><a onclick="changeStyle(4);" sysId="4" href="#" >C++</a></li>
                </ul>
            </li>

            <li>
                <a>集成开发环境</a>
                <ul class="submenu">
                  <li><a onclick="changeStyle(5);" sysId="5" href="#" >WebStrom</a></li>
                  <li><a onclick="changeStyle(6);" sysId="6" href="#" >Visual studio</a></li>
                </ul>
            </li>
            <li>
                <a>脚本语言</a>
                <ul class="submenu">
                    <li><a onclick="changeStyle(7);" sysId="7" href="#">Javascript</a></li>
                    <li><a onclick="changeStyle(8);" sysId="8" href="#">Python</a></li>
                </ul>
            </li>
        </ul>
    </div>
</body>
<script type="text/javascript">
    $(function () {
        $(‘.menu li > .submenu‘).slideUp(‘normal‘);//通过使用滑动效果,隐藏被选元素,如果元素已显示出来的话

        var accordion_head = $(‘.menu > li > a‘),
            accordion_body = $(‘.menu li > .submenu‘);
        //accordion_head.first().addClass(‘active‘).next().slideDown(‘normal‘);这行代码设置页面打开时展开第一个菜单
        accordion_head.on(‘click‘, function (event) {
            event.preventDefault();//preventDefault() 方法阻止元素发生默认的行为
            if ($(this).attr(‘class‘) != ‘active‘) {
                accordion_body.slideUp(‘normal‘);
                $(this).next().stop(true, true).slideToggle(‘normal‘);
                //获取.menu > li > a > 点击元素的同级的下个元素>停止所有在该元素上正在运行的动画>通过使用滑动效果在显示和隐藏状态之间切换元素
                accordion_head.removeClass(‘active‘);
                $(this).addClass(‘active‘);
            }
            else {
                accordion_body.slideUp(‘normal‘);
                $(this).removeClass(‘active‘);
            }
        });
    });

    function changeStyle(obj) {
        $(".submenu a").each(function () {
            if (obj == $(this).attr("sysId")) {
                $(this).addClass(‘cur‘);
            } else {
                $(this).removeClass(‘cur‘);
            }
        });
    }

</script>
</html>

样式active用来标记当前哪个元素是展开状态,主要用到jQuery里的slideUp和 slideToggle方法。

时间: 2024-10-05 04:45:08

jquery垂直展开折叠手风琴二级菜单的相关文章

jquery实现的点击可以展开折叠的垂直导航菜单

jquery实现的点击可以展开折叠的垂直导航菜单:本章节介绍一种比较常见的导航菜单是如何实现的,它具有垂直结构,点击导航主标题可以展开或者折叠二级菜单.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" />

jquery实现后台系统左侧菜单的点击展开/收缩二级菜单效果

html: <div class="col-sm-3 col-md-2 sidebar"> <div class="totalt"><a>系统管理系统</a></div> <ul class="menu"> <li class="title"> <a class="item item1"><span cla

Jquery垂直下拉二级菜单

自己做了一个基于Jquery 的垂直下拉二级菜单功能,直接看图: Html的代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>垂直下拉菜单</title> <meta name="viewport" content="width=device-width, initial-scale=1"

CSS+jQuery打造的折叠菜单面板

Accordion折叠面板,折叠菜单代码,Simple Accordion with CSS & jQuery,鼠标点击后展开,再次点击后折叠起来.网上很常用的手风琴效果. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=&

基于jQuery垂直多级导航菜单代码

基于jQuery垂直多级导航菜单代码是一款黑色风格的jQuery竖直导航菜单特效下载.效果图如下: 在线预览   源码下载 实现的代码. html代码: <ul class="ce"> <li> <a class="xz" href="#">目录A</a> </li> <li> <a href="#">目录B <img class=&qu

jquery实现的点击二级下拉导航菜单

jquery实现的点击二级下拉导航菜单:二级下拉导航菜单是各种类型的网站都有使用,所以是一个必须掌握的技能,对于老手来说肯定是轻松加愉快,但是对于初学者来说未必如此,下面就通过代码实例详细介绍一下点击二级下拉菜单实现过程.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="htt

jQuery 二级菜单,一次显示一个小类 鼠标点击显示小类

jQuery 二级菜单,一次显示一个小类 鼠标点击显示小类 本例有另外2个关联案例,演示地址分别为2.php,3.php 演示 XML/HTML Code <div class="arrowlistmenu"> <h3 class="menuheader expandable">表单</h3> <ul class="categoryitems"> <li><a href="

基于 jQuery 实现垂直滑动的手风琴效果

今天我们要与大家分享一个漂亮而灵活的垂直 jQuery 手风琴效果.其主要思想是扩大手风琴片上的点击和显示更多的信息.其他内容片段将变得不那么透明.当使用一个导航箭头导航下一个片段,新的片会从顶部或底部滑动. 效果演示     插件下载 HTML 示例代码: <div id="va-accordion" class="va-container"> <div class="va-nav"> <span class=&q

CSS+JS感应鼠标展开的的二级下拉菜单

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>CSS+JS感应鼠标展开的的二级下拉菜单丨