JSFiddle - React, Tailwind, and code Playground
HTML
<div class="sidebar_open-wrap">
<div class="sidebar_open-icons" id="navbar_open">=)</div>
<div class="sidebar-left" id="navbar_open-left"></div>
</div>
CSS
.sidebar_open-icons {
background: rgba(0, 0, 0, 0) none repeat scroll 0 0;
border: medium none;
border-radius: 50%;
cursor: pointer;
float: left;
height: 44px;
text-align: center;
width: 44px;
cursor: pointer;
}
.sidebar_open-icons:hover {
background-color: #f4f4f4;
}
#navbar_open-left {
background-color: #eee;
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1) inset, -1px -1px 0 0 rgba(0, 0, 0, 0.07) inset;
display: inline;
height: 200px;
left: -50%;
min-width: 260px;
position: absolute;
top: 64px;
z-index: 2;
transition: left .5s;
}
#navbar_open-left.visible {
left: 0;
}
JavaScript
$(document).ready(function () {
var keyOpen = $('#navbar_open');
var navBar = $('#navbar_open-left'),
flag=!1;
keyOpen.click(function (e) {
navBar.toggleClass("visible")
e.preventDefault()
});
$(document).click(function (e) {
if ((e.target || e.srcElement) !== keyOpen[0] && !flag) navBar.removeClass("visible")
});
navBar[0].onclick=function(e){
flag=!0
}
});