JSFiddle - React, Tailwind, and code Playground
by Gagan Jaura
HTML
<body>
<div class="buttons">
<a href="" class="active_button" data-sectionId="section1">Section 1</a>
<a href="" data-sectionId="section2">Section 2</a>
<a href="" data-sectionId="section3">Section 3</a>
<a href="" data-sectionId="section4">Section 4</a>
</div>
<div class="sections">
<div class="section active_section" id="section1">
Section 1 <br>
Section 1 <br>
Section 1 <br>
Section 1 <br><br>
</div>
<div class="section" id="section2">
Section 2 <br>
Section 2 <br>
Section 2 <br>
Section 2 <br> <br>
</div>
<div class="section" id="section3">
Section 3 <br>
Section 3 <br>
Section 3 <br>
Section 3 <br><br>
</div>
<div class="section" id="section4">
Section 4 <br>
Section 4 <br>
Section 4 <br>
Section 4 <br><br>
</div>
</div>
</body>
CSS
<style>
body
{
text-align: center;
padding-top: 50px;
}
a
{
color: white;
text-decoration: none;
padding: 10px;
background-color: grey;
margin: 0px -1px;
border-radius: 10px 10px 0px 0px;
transition: all 0.3s ease-in-out;
}
.active_button
{
background-color: lightgrey;
}
.sections
{
position: relative;
}
.section
{
display: none;
padding: 20px;
background-color: lightgrey;
position: absolute;
width: 286px;
top: 10px;
left: 50%;
margin-left: -163px;
border-radius: 0 0 10px 10px;
}
.active_section
{
display: block;
}
</style>
JavaScript
$(function() {
// capture click of section button
$("a").click(function(e) {
// prevent default link behaviour
e.preventDefault();
// hide the current active section
$(".active_section").slideUp(500, function(){
// then take away their active class
$(this).removeClass("active_section");
// find out what section button is pressed
});
var sectionId = $(this).attr("data-sectionId");
setTimeout(
function()
{
// slide down that section
$("#"+sectionId).slideDown(500, function(){
// add the active class
$(this).addClass("active_section");
});
}, 500);
}); // click function closes here
});