JSFiddle - React, Tailwind, and code Playground
by cfarm
HTML
<ul id="nav">
<li class="tab" id="email">Email</li>
<li class="tab" id="portfolio">Portfolio</li>
</ul>
<div class="content">
<div class="tab-content" id="emailform">Email Form</div>
<div class="tab-content" id="portfoliocontent">Portfolio content</div>
</div>
CSS
#nav .tab {
float: left;
border: 1px solid black;
margin: 5px;
padding: 5px;
cursor: pointer;
}
#nav .active {
background-color: yellow;
}
.content {
position: relative;
clear: both;
}
.content .tab-content {
display: none;
top: 0px;
left: 0px;
width: 200px;
height: 200px;
border: 1px solid black;
position: absolute;
}
JavaScript
$(document).ready(function(){
// object to match up tab id to content id
tabContentRelation = {
"email":"emailform",
"portfolio":"portfoliocontent"
};
$(".tab").click(function(){
var $clickedTab = $(this);
var clickedId = this.id;
if ( $clickedTab.is('.active') ) {
$clickedTab.removeClass('active');
$("#" + tabContentRelation[clickedId]).fadeOut('fast');
}
else {
$clickedTab.addClass('active');
$("#" + tabContentRelation[clickedId]).fadeIn('fast');
$('.tab.active:not(#' + clickedId + ')').removeClass('active')
.each(function(){
$("#" + tabContentRelation[this.id]).fadeOut('fast');
});
}
return false;
});
});