侧边栏改成图标样式
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 }
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 }
在缩成图标的样式下,类名为‘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 }
需要注意的是来回切换要解绑之前绑定的点击(鼠标移入移出)事件。
以上是关于侧边栏改成图标样式的主要内容,如果未能解决你的问题,请参考以下文章