js收缩菜单

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js收缩菜单相关的知识,希望对你有一定的参考价值。

效果图:

技术分享

css代码:

 1 ul{
 2     padding:0;
 3     font-family:Microsoft Yahei;
 4 }
 5 ul li{
 6     list-style-type:none;
 7 }
 8 .new-menu{
 9     margin-top: 0px;
10     margin-bottom:0px;
11 }
12 .new-menu>li{
13     margin-bottom:2px;
14 }
15 .group-title{
16     height:35px;
17     line-height:35px;
18     width:100%;
19     font-size:14px;
20     padding-left:10px;
21     background:#F3F5F9;
22     color:#333;
23     cursor:pointer;
24 }
25 .title-minus{
26     background:url("../../images/leftmenu/minus.png") no-repeat!important;
27 }
28 .title-plus{
29     background:url("../../images/leftmenu/plus.png") no-repeat!important;
30 }
31 .title-name{
32     margin-left:10px;
33 }
34 .title-mark{
35     float:right;
36     height:19px;
37     margin-top:7px;
38     line-height:35px;
39     margin-right:10px;
40     color:#D1D3DA;
41     width: 21px;
42 }
43 .collapse>li{
44     color:#666;
45     height:35px;
46     line-height:35px;
47     font-family:Microsoft Yahei;
48     font-size:14px;
49     cursor:pointer;
50     text-align:left;
51     border-bottom:solid 1px #f8f8f8;
52     padding-left:35px;
53 }
54 .collapse>li:hover{
55     color:#3a7dd2;
56 }
57 .collapse-active{
58     background:#3a7dd2;
59     color:#fff !important;
60 }

js代码:

 1 $(function(){
 2     leftMenu.hideEvent();
 3     leftMenu.bindEvent();
 4 });
 5 
 6 /**
 7  * 左边目录栏操作
 8  */
 9 var leftMenu={
10         /**
11          * 初始化隐藏
12          */
13         hideEvent : function(){
14             $(".collapse").css("display","block");
15             $("#first").nextAll().find("ul").css("display","none");
16         },
17         bindEvent : function(){
18             /**
19              * 主菜单的点击事件
20              */
21             $(".group-title").on("click", function() {
22                 /*$(this).parent().find("ul").slideToggle(300,function(){
23                     if($(this).css("display") == "none"){
24                         $(this).prev().find("#mark").attr("class","fa fa-plus title-mark");
25                     }else{
26                         $(this).prev().find("#mark").attr("class","fa fa-minus title-mark");
27                     }
28                 });*/
29                 if($(this).parent().find("ul").css("display") == "none"){
30                     $(this).parent().find("ul").slideDown("fast");
31                     $(this).find("#mark").attr("class","title-minus title-mark");
32                     $(this).parent().siblings().find("ul").slideUp("fast");
33                     $(this).parent().siblings().find("#mark").attr("class","title-plus title-mark");
34                 }else{
35                     $(this).parent().find("ul").slideUp("fast");
36                     $(this).parent().find("#mark").attr("class","title-plus title-mark");
37                 }
38             });
39 
40             /**
41              * 子菜单的点击事件
42              */
43             $(".collapse>li").on("click", function() {
44                 $(this).addClass("collapse-active");
45                 $(".collapse>li").not(this).removeClass("collapse-active");
46                 $($("iframe")[0]).attr("src", $(this).attr("data-href"));
47             });
48         }
49 }

使用范例:

 1 <ul class="new-menu">
 2  2     <li class="accordion-group" id="first">
 3  3         <div class="group-title"><i class="fa fa-database"></i><b class="title-name">一级菜单A</b><span id="mark" class="title-minus title-mark"></span></div>
 4  4             <ul class="collapse">
 5  5                 <li class="collapse-active" data-href="">
 6  6                     二级菜单A
 7  7                 </li>
 8  8                 <li data-href="">
 9  9                     二级菜单B
10 10                 </li>
11 11             </ul>
12 12     </li>
13 13     <li class="accordion-group">
14 14         <div class="group-title"><i class="fa fa-cog"></i><b class="title-name">一级菜单B</b><span id="mark" class="title-plus title-mark"></span></div>
15 15             <ul class="collapse">
16 16                 <li data-href="">
17 17                     二级菜单C
18 18                 </li>
19 19                 <li data-href="">
20 20                     二级菜单D
21 21                 </li>
22 22                         
23 23             </ul>
24 24     </li>
25 25 </ul>

 所需图标:

技术分享技术分享

以上是关于js收缩菜单的主要内容,如果未能解决你的问题,请参考以下文章

js实现二级菜单显示和收缩

二级菜单打开后页面刷新不收缩效果

只用CSS能否制作可以收缩的下拉菜单

jQuery动态添加多级收缩菜单

收缩展开菜单

jQuery--左侧菜单收缩隐藏