JSFiddle - React, Tailwind, and code Playground
by Ajsa Ferguson
HTML
<div class="menu" id="menu">
<div class="icon-close">
<img src="close.png" id="close">
</div>
<ul>
<li><a href="#">Home</a>
</li>
<li><a href="#">Gallery</a>
</li>
<li><a href="#">Locations</a>
</li>
<li><a href="#">Contact Us</a>
</li>
</ul>
</div>
<div id="body">
<div class="jumbotron">
<div class="icon-menu" id="open"> <i class="fa fa-bars" id="open"></i>Menu</div>
</div>
</div>
CSS
html, body, #menu, #body {
height: 100%;
}
.menu {
position: absolute;
width: 285px;
left: -285px;
}
#body {
position: absolute;
left: 0px;
right: 0px;
}
/* Styling */
*, *:before, *:after {
padding: 0;
margin: 0;
box-sizing: border-box;
}
#menu {
background-color: rgb(40, 140, 240);
color: #FFF;
}
#menu * {
color: inherit;
}
#menu a {
padding: 15px;
padding-left: 20px;
display: inline-block;
text-decoration: none;
width: 100%;
}
#menu a:hover {
background: rgb(30, 130, 230);
}
.icon-menu {
padding: 15px;
padding-left: 20px;
}
.text {
padding: 15px;
}
.jumbotron {
background: rgb(50, 150, 250);
color: #FFF;
}
JavaScript
var menu = document.getElementById("menu");
var body = document.getElementById("body");
menu.style.transition = "0.3s linear";
body.style.transition = "0.3s linear";
document.onclick = function (e) {
if (menu.style.left != "0px") {
if (e.target.id === "open") {
menu.style.left = "0px";
body.style.left = "285px";
}
} else {
if (e.target.id === "body" || e.target.id === "close" || e.target.id === "open") {
menu.style.left = "-285px";
body.style.left = "0px";
}
}
};