JSFiddle - React, Tailwind, and code Playground
HTML
<button id="tray-toggle" aria-controls="nav-tray" tabindex="0">Menu</button>
<div id="nav-tray">
<ul id="nav-main-menu">
<li><a href="#">One</a></li>
<li><a href="#">Two</a></li>
</ul>
</div>
<header role="banner">
<p>header</p>
</header>
<div id="wrapper">
<main>
<p>Content</p>
</main>
<footer>
<p>Footer</p>
</footer>
</div>
CSS
body{
width: 100%;
overflow-x: hidden;
padding-top: 60px;
}
body.tray-open {
overflow: hidden;
}
#wrapper {
position: relative;
left: 0;
-webkit-transition: left 1s;
transition: left 1s;
}
header {
position: fixed;
top: 0;
left: 0;
z-index: 1;
width: 100%;
height: 60px;
-webkit-transition: left 1s;
transition: left 1s;
}
#tray-toggle {
position: absolute;
top: 10px;
right: 60px;
z-index: 10;
}
#nav-tray {
position: fixed;
top: 2px;
left: -200px;
bottom: -60px;
z-index: 2;
overflow: scroll;
width: 200px;
-webkit-transition: left 1s;
transition: left 1s;
}
.tray-open #nav-tray {
left: 0;
}
.tray-open #wrapper {
left: 200px;
}
.tray-open header {
left: 200px;
}
JavaScript
$(function() {
$('#tray-toggle').click(function(){$('body').toggleClass('tray-open')});
});