JSFiddle - React, Tailwind, and code Playground
by Ivan Ferrer
HTML
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<nav class="navbar navbar-default sidebar" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-sidebar-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Menu Vertical </a>
</div>
<div class="collapse navbar-collapse" id="bs-sidebar-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="/">Inicial<span style="font-size:16px;" class="pull-right hidden-xs showopacity fa fa-home"></span></a></li><li><a href="/">Sobre<span style="font-size:16px;" class="pull-right hidden-xs showopacity fa fa-user"></span></a></li><li><a href="/">Cliente<span style="font-size:16px;" class="pull-right hidden-xs showopacity fa fa-users"></span></a></li><li><a href="/">Produto<span style="font-size:16px;" class="pull-right hidden-xs showopacity fa fa-tags"></span></a></li><li><a href="/">Pedidos<span style="font-size:16px;" class="pull-right hidden-xs showopacity fa fa-shopping-cart"></span></a></li><li><a href="/">Colaborador<span style="font-size:16px;" class="pull-right hidden-xs showopacity fa fa-user-secret"></span></a></li><li><a href="/">Relatórios<span style="font-size:16px;" class="pull-right hidden-xs showopacity fa fa-bar-chart"></span></a></li><li><a href="/">Gerencial<span style="font-size:16px;" class="pull-right hidden-xs...
CSS
nav.sidebar, .main{
-webkit-transition: margin 200ms ease-out;
-moz-transition: margin 200ms ease-out;
-o-transition: margin 200ms ease-out;
transition: margin 200ms ease-out;
}
.main{
padding: 10px 10px 0 10px;
}
@media (min-width: 765px) {
.main{
position: absolute;
width: calc(100% - 40px);
margin-left: 40px;
float: right;
}
nav.sidebar:hover + .main{
margin-left: 200px;
}
nav.sidebar.navbar.sidebar>.container .navbar-brand, .navbar>.container-fluid .navbar-brand {
margin-left: 0px;
}
nav.sidebar .navbar-brand, nav.sidebar .navbar-header{
text-align: center;
width: 100%;
margin-left: 0px;
}
nav.sidebar a{
padding-right: 13px;
}
nav.sidebar .navbar-nav > li:first-child{
border-top: 1px #e5e5e5 solid;
}
nav.sidebar .navbar-nav > li{
border-bottom: 1px #e5e5e5 solid;
}
nav.sidebar .navbar-nav .open .dropdown-menu {
position: static;
float: none;
width: auto;
margin-top: 0;
background-color: transparent;
border: 0;
-webkit-box-shadow: none;
box-shadow: none;
}
nav.sidebar .navbar-collapse, nav.sidebar .container-fluid{
padding: 0 0px 0 0px;
}
.navbar-inverse .navbar-nav .open .dropdown-menu>li>a {
color: #777;
}
nav.sidebar{
width: 200px;
height: 100%;
margin-left: -160px;
float: left;
...
JavaScript
$('input.sh').on('keyup', function(){
var elementFilter = $(this).data('search');
var dataFilter = $(this);
var valorBusca = dataFilter.val();
var contaLetras = valorBusca.length;
if (contaLetras >= 1) {
filterData(valorBusca, elementFilter);
} else {
$('.'+elementFilter+' li a').parent().show();
$('.'+elementFilter+' .divider').show();
}
function filterData(data, elementFilter) {
$('.'+elementFilter+' li a').each(function(iIndex, sElement) {
$(sElement).parent().hide();
$('.'+elementFilter+' .divider').eq(iIndex).hide();
if (sElement.innerHTML.indexOf(data) !== -1) {
var obj = $(sElement).parent();
obj.prev().show();
obj.next().show();
obj.show();
}
});
}
function retiraAcentos(palavra) {
var com_acento = 'áàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÖÔÚÙÛÜÇ';
var sem_acento = 'aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC';
var nova='';
for(i=0;i<palavra.length;i++) {
if (com_acento.search(palavra.substr(i,1))>=0) {
nova+=sem_acento.substr(com_acento.search(palavra.substr(i,1)),1);
}
else {
nova+=palavra.substr(i,1);
}
}
return $.trim(nova).toLowerCase();
}
});