Skip to content

Instantly share code, notes, and snippets.

@ChiaYiLai
Created August 29, 2015 06:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ChiaYiLai/e70eb02fc1f653354900 to your computer and use it in GitHub Desktop.
Save ChiaYiLai/e70eb02fc1f653354900 to your computer and use it in GitHub Desktop.
very simple offcanvas drawer menu
<i class="material-icons" id="openMenu">menu</i>
<div id="menu">
<ul>
<li><a href="#">item 1</a></li>
<li><a href="#">item 2</a></li>
<li><a href="#">item 3</a></li>
</ul>
</div>
<div id="bodyMask"></div>
var $body = $('body');
$('#openMenu').on('click', function(e){
$body.addClass('openMenu');
e.stopPropagation();
$(document).on('click', function(e){
if(!$(e.target).closest('#menu').length){
$body.removeClass('openMenu');
}
});
});
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
body.openMenu{
overflow:hidden;
}
#bodyMask{
position:absolute;
left:0;
top:0;
width:100%;
height:100%;
background-color:transparent;
visibility:hidden;
transition:.8s;
.openMenu &{
background-color:rgba(0,0,0,.5);
visibility:visible;
}
}
#openMenu{
color:#999;
transition:.3s;
cursor:pointer;
&:hover{color:#000;}
}
#menu{
width:280px;
height:100%;
background-color:#fff;
transition:.5s ease-in-out;
position:fixed;
left:-280px;
top:0;
z-index:1;
box-shadow:0 0 8px rgba(0,0,0,.2);
overflow:auto;
.openMenu &{left:0;}
ul{
list-style:none;
padding:0;
margin:0;
li{
a{
display:block;
padding:12px;
background-color:#fff;
text-decoration:none;
color:#888;
border-bottom:1px solid rgba(0,0,0,.12);
transition:.3s;
&:hover{
background-color:#f5f5f5;}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment