JSFiddle - React, Tailwind, and code Playground
by Carlos Medina
HTML
<script src="https://code.jquery.com/jquery-2.2.0.js"></script>
<div id="container">
<div id="canvas">
<div id="nav">
<ul id="toggle" class="menu">
<li><a href="#home">HOME</a>
</li>
<li><a href="#about-us">ABOUT US</a>
</li>
<li><a href="#portfolio">PORTFOLIO</a>
</li>
<li><a href="#contact">CONTACT</a>
</li>
</ul>
</div>
<span class="toggle-nav" id="bars"><i class="fa fa-bars"></i></span>
<div id="main">
<div id="portfolio" class="content">Portfolio.............</div>
<div id="contact" class="content">Contact ...........</div>
<div id="home" class="content">home ................</div>
<div id="about-us" class="content">About us ................</div>
</div>
</div>
CSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html,
body { height: 100%; }
.wrapper {
display: flex;
min-height: 100%;
}
.content {
display: none;}
a{
text-decoration: none;
}
.hamburger-checkbox {
position: absolute;
opacity: 0;
}
.hamburger-label {
position: absolute;
top: 32px;
left: 32px;
z-index: 1;
display: block;
width: 42px;
height: 42px;
font: 42px/42px fontawesome;
text-align: center;
color: #B4BA22;
cursor: pointer;
}
.hamburger-checkbox:checked ~ .hamburger-label:before {
content: '\f00d';
position: absolute;
top: 0;
left: 0;
z-index: 1;
display: block;
width: 42px;
height: 42px;
font: 42px/42px fontawesome;
text-align: center;
color: #eee;
}
.content {
flex: 1;
padding: 80px 50px;
background: #eee;
color: #444;
box-shadow: 0 0 5px black;
transition: all .3s;
}
.sidebar {
overflow: hidden;
width: 0;
height: 0;
background: #B4BA22;
color: #eee;
transition: all .3s;
}
.hamburger-checkbox:checked ~ .sidebar {
width: 25%;
height: auto;
padding-top: 6.5em;
}
.menu li:hover{
background: #00ff99;
}
.menu { list-style: none; }
.menu li {
padding: 16px 32px;
border-top: 1px solid #2b2b2b;
}
.menu li:last-child { border-bottom: 1px solid #2b2b2b; }
/* Decorative styles unrelated to the demo */
body { font-family: 'Open Sans', sans-serif; }
h1 {
margin: 32px 0;
font-weight: 300;
font-size: 200%;
}
p { margin: 0 0 16px 0; }
a { color: white; }
JavaScript
$(function() {
$(window).on('hashchange', function(e){
$("#main .content").hide();
$(window.location.hash).show();
});
setTimeout(function(){
if(window.location.hash != ""){
$(window).trigger('hashchange');
}
}, 10);
});
// Calling the function
$(function() {
$('.toggle-nav').click(function() {
toggleNavigation();
});
});
// The toggleNav function itself
function toggleNavigation() {
if ($('#container').hasClass('display-nav')) {
// Close Nav
$('#container').removeClass('display-nav');
} else {
// Open Nav
$('#container').addClass('display-nav');
}
}
var selector = '.menu li';
$(selector).on('click', function() {
$(selector).removeClass('active');
$(this).addClass('active');
});
// SLiding codes
$("#toggle > li > div").click(function () {
if (false == $(this).next().is(':visible')) {
$('#toggle ul').slideUp();
}
var $currIcon=$(this).find("span.the-btn");
$("span.the-btn").not($currIcon).addClass('fa-plus').removeClass('fa-minus');
$currIcon.toggleClass('fa-minus fa-plus');
$(this).next().slideToggle();
$("#toggle > li > div").removeClass("active");
$(this).addClass('active');
});