JSFiddle - React, Tailwind, and code Playground

by Ryan Brackett

HTML

<div class="viewport">
    <div class="global menu bottom" id="page-tabs">
        <ul id="tabs">
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
        </ul>
        <ul id="panels">
            <li>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.</li>
            <li>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.</li>
            <li>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. </li>
            <li>Panel 4</li>
        </ul>
    </div>
</div>

CSS

body {
    padding: 0px;
    margin: 0px;  background: black;
    background: #d7e8b6;



}
#tabs #result.tCont {
    padding-top: 0px;
}

.global.menu.bottom {
    width: 100%;
    position: fixed;
    bottom: 0px;
}
#page-tabs, #page-tabs > ul {
    margin: 0;
    padding: 0;
}
#page-tabs {
    margin-top: 20px;
}
#page-tabs #tabs {
    clear: both;
    display: table;
    width: 100%;
}
#page-tabs #tabs > li {
    float: left;
    list-style: none;
    display: block;
    cursor: pointer;
    background-color: gray;
}
#page-tabs #tabs > li .tab-wrapper {
    padding: 20px 0px;
    font-size: 15px;
    font-weight: bold;
    text-align: center;
    color: white;
  
}

#page-tabs #tabs > li.xactive {
    background: none;
}
#page-tabs #tabs > li.xactive .tab-wrapper {
    color: black;
}

#page-tabs #panels {
    clear: both;
    position: relative;
    list-style: none;
}
#page-tabs #panels > li {
    margin: 0px;
    padding: 0px;
    height: 0px;
    width: 100%;
    list-style: none;
}
#page-tabs #panels > li ul {
    margin: 10px 20px;
}
#page-tabs #panels > li ul li {
    list-style: disc;
}
#page-tabs #panels .panel-wrapper {
    display: none;
    width: 90%;
    padding: 30px 5%;
    background-color: #EDEDED;
    position: relative;
}
.location-template .panel.providers .panel-wrapper, .specialty-template .panel.providers .panel-wrapper, .provider-template .panel.information .panel-wrapper {
    padding-top: 20px!important;
}
#page-tabs #panels > li.xactive {
    height: auto;
    height: auto;
    position: absolute;
    bottom: 57px;
}
#page-tabs #panels > li.xactive .panel-wrapper {
    display: block;
}
#page-tabs #panels .accordion-tab {
    display: none;
    padding: 25px 20px;
    background-color: #808080;
    color: #FFF;
    font-weight: bold;
    cursor: pointer;
    font-size: 20px;
}
#page-tabs #panels .xactive .accordion-tab {
    border-bottom: none;
    background-color: #EDEDED;
    color: #AA5C09;
    padding-bottom: 0px;
}

JavaScript

$("head").append("<meta name='viewport' content='width=device-width'>")





// jQuery Responsive Page Tabs

var selectedTab

$("#tabs").children().each(function (i) {
    i = i + 1;
    $(this).attr('id', "tab-" + i).addClass("tab").wrapInner("<div class='tab-wrapper'></div>");
});

var count = $("#tabs").children().length;

var tab_width = (100 / count) + "%";
$("#tabs li").css("width", tab_width).eq(0).addClass('first').end().eq(-1).addClass('last').end();


$("#panels").children().each(function (i) {
    i = i + 1;
    $(this).attr('id', "panel-" + i).addClass("panel").wrapInner("<div class='panel-wrapper'></div>").prepend("<div class='accordion-tab'></div>");
});

$(".accordion-tab").each(function (i) {
    i = i + 1;
    var tab_name = $("#tab-" + i).html();
    $(this).html(tab_name);
});

$("#tabs").children().eq(selectedTab).addClass("xactive");

$("#panels").children().eq(selectedTab).addClass("xactive");

$("#tabs > li").click(function () {
    $("#tabs > li, #panels > li").removeClass("xactive");
    $("#panels > li").eq($(this).index()).toggleClass('xactive');
    $(this).toggleClass('xactive');
});

$(".accordion-tab").click(function () {
    $("#tabs > li, #panels > li").removeClass("xactive");
    $("#tabs > li").eq($(this).parent().index()).toggleClass('xactive');
    $(this).parent().toggleClass('xactive');

});

$(".tab, .accordion-tab").click(function () {
    $('html,body').delay(100).animate({
        scrollTop: $(this).offset().top - 20
    }, 400);
});

$('body,html').bind('scroll mousedown wheel DOMMouseScroll mousewheel keyup', function (e) {
    if (e.which > 0 || e.type == "mousedown" || e.type == "mousewheel") {
        $("html,body").stop();
    }
})