侧边栏改成图标样式

Posted 小闹心lu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了侧边栏改成图标样式相关的知识,希望对你有一定的参考价值。

需求如下:

将左侧的菜单样式改成右侧的样式,页面左下角有一个箭头,可以来回切换。

首先,先找到代码,将箭头添加上,样式也要相应的加上,接下来就是绑定点击事件。

我的思路是:写上两套不同的css,然后来回切换的时候只要更改类名就可以了,下面附上我做的过程。

1、index.html中添加<span class="arrow" onclick=”arrowClick()”>></span>下方箭头部分;在app.css中加入箭头样式。

/*菜单栏的箭头*/

 1 .arrow {
 2  
 3  display: inline-block;
 4  
 5  width: 40px;
 6  
 7  height:40px;
 8  
 9   background-color: #000;
10  
11  border-radius: 8px;
12 
13  font-size:20px;
14  
15  color:#fff;
16  
17  line-height: 40px;
18  
19  text-align: center;
20  
21  position: fixed;
22  
23  bottom: 50px;
24  
25  left:10px;
26  
27  cursor:pointer;
28  
29  }
View Code

2、在app.js中给箭头加上点击事件

 1 function arrowClick(){
 2 
 3     if($(\'.arrow\').text()==\'<\'){
 4 
 5         $(\'.arrow\').text(\'>\');
 6 
 7         // 缩成图标
 8 
 9         $(\'.sidebar-header h1\').css(\'display\',\'none\');//隐藏头部标题
10 
11         $(\'#sidebar\').css(\'width\',\'55px\');
12 
13         $(\'#nav_menu_list\').removeClass(\'sidebar-menu\').addClass(\'menu\');
14 
15         $(\'#nav_menu_list > ul\').css(\'width\',\'55px\');
16 
17         $(\'#content\').css(\'marginLeft\',\'55px\');
18 
19         $(\'#nav_menu_list > ul > li\').css(\'hight\',\'55px\');
20 
21         $(\'#nav_menu_list > ul > li > a > span\').addClass(\'spanhide\');
22 
23         $(\'#nav_menu_list > ul > li i\').css({\'fontSize\':\'25px\',\'color\':\'#fff\'});
24 
25         $(\'.menu > ul > li\').each(function(index){
26 
27             $(this).unbind(\'click\');
28 
29             $(this).mouseover(function(e) {
30 
31                  e.preventDefault();
32 
33                 $(this).css(\'position\',\'relative\');
34 
35                 $(this).find(\'ul\').addClass(\'menu_ul\').css(\'display\',\'block\');
36 
37             });
38 
39             $(this).mouseout(function() {
40 
41                 $(this).find(\'ul\').removeClass(\'menu_ul\').css(\'display\',\'none\');
42 
43             });
44 
45         })
46 
47     }else{
48 
49         $(\'.arrow\').text(\'<\');
50 
51         $(\'.sidebar-header h1\').css(\'display\',\'block\');
52 
53         $(\'#sidebar\').css(\'width\',\'180px\');
54 
55         $(\'#nav_menu_list > ul\').css(\'width\',\'180px\');
56 
57         $(\'#nav_menu_list\').removeClass(\'menu\').addClass(\'sidebar-menu\');
58 
59         $(\'#content\').css(\'marginLeft\',\'180px\');
60 
61         $(\'#nav_menu_list > ul > li > a > span\').removeClass(\'spanhide\');
62 
63         $(\'#nav_menu_list > ul > li\').css(\'hight\',\'0px\');
64 
65         $(\'#nav_menu_list > ul > li i\').css({\'fontSize\':\'12px\',\'color\':\'#939da8\'});
66 
67         $(\'.sidebar-menu > ul > li\').unbind(\'mouseover\');//解绑之前绑定的移入移出事件
68 
69         $(\'.sidebar-menu > ul > li\').unbind(\'mouseout\');
70 
71  
72 
73     }
74 
75 }
View Code

在缩成图标的样式下,类名为menu,放开的情况下为‘sidebar-menu;

3、切换为图标模式下,给子菜单重新设置样式。

  1 .menu ul,.menu li {
  2 
  3   list-style: none;
  4 
  5   padding:0;
  6 
  7 }
  8 
  9 /*给各模块添加颜色*/
 10 
 11 .menu > ul > li:nth-child(1) {background-color: #FB6B5B;}
 12 
 13 .menu > ul > li:nth-child(2) {background-color: #FFC333;}
 14 
 15 .menu > ul > li:nth-child(3) {background-color: #8EC165;}
 16 
 17 .menu > ul > li:nth-child(4) {background-color: #48A75B;}
 18 
 19 .menu > ul > li:nth-child(5) {background-color: #4CC0C1;}
 20 
 21 .menu > ul > li:nth-child(6) {background-color: #27A9E3;}
 22 
 23 .menu > ul > li:nth-child(7) {background-color: #6FE6F7;}
 24 
 25 .menu > ul > li:nth-child(8) {background-color: #06EA8A;}
 26 
 27 .menu > ul > li:nth-child(9) {background-color: #008C45;}
 28 
 29 .menu > ul > li:nth-child(10) {background-color: #FF8A41;}
 30 
 31 .menu > ul > li:nth-child(11) {background-color: #CDFF86;}
 32 
 33  
 34 
 35 /*添加ul悬浮在右侧,鼠标移入图标的时候显示*/
 36 
 37 .menu>ul>li {
 38 
 39   position: relative;
 40 
 41   height: 55px;
 42 
 43   text-align: center;
 44 
 45   padding-top: 15px;
 46 
 47 }
 48 
 49 .menu>ul>li>ul {
 50 
 51   position: absolute;
 52 
 53   left:55px;
 54 
 55   top:0px;
 56 
 57   width: 100px;
 58 
 59   z-index: 300;
 60 
 61 }
 62 
 63 .menu > ul li ul{background-color: #1e242b;}
 64 
 65 .menu > ul li ul li a{color:#939da8}
 66 
 67 .menu > ul li ul li a:hover, .menu > ul li ul li.active a{color: #fff;background-color: #28b779;}
 68 
 69 .menu li ul li a:hover,
 70 
 71 .menu li ul li.open a{color: #FF6C60;-webkit-transition: all 0.3s ease;-moz-transition: all 0.3s ease;-o-transition: all 0.3s ease;-ms-transition: all 0.3s ease;transition: all 0.3s ease;display: block;}
 72 
 73 .menu > ul > li > a > .label{margin: 0 20px 0 0;float: right;padding: 3px 5px 2px;}
 74 
 75 .menu > ul li ul{display: none;margin: 0;padding: 0;}
 76 
 77 .menu > ul li.open ul{display: block;}
 78 
 79 .menu > ul li ul li a{padding: 10px 0 10px 10px;display: block;color: #777777;}
 80 
 81 .menu > ul li ul li:first-child a{border-top: 0;}
 82 
 83 .menu > ul li ul li:last-child a{border-bottom: 0;}
 84 
 85 .menu > ul > li.active{background-color: #27a9e3;border-bottom: 1px solid #27a9e3;border-top: 1px solid #27a9e3;}
 86 
 87 .menu > ul > li.active > a {
 88 
 89     background: url("../img/menu-active.png") no-repeat right center !important;
 90 
 91     text-decoration: none;
 92 
 93 }
 94 
 95 .menu > ul > li > a {
 96 
 97   display: block;
 98 
 99   width: 100%;
100 
101   height: 100%;
102 
103 }
View Code

需要注意的是来回切换要解绑之前绑定的点击(鼠标移入移出)事件。

 

以上是关于侧边栏改成图标样式的主要内容,如果未能解决你的问题,请参考以下文章

自制博客侧边栏公告网页链接“图标 ”

Xamarin 表单 - 侧边菜单左侧栏、片段和列表视图

用js实现生活资讯网侧边栏

折叠侧边栏时 SVG 图标消失

layui侧边栏折叠和展开效果该怎么实现

UISplitViewController - 用侧边栏切换图标替换后 V 形图标