JSFiddle - React, Tailwind, and code Playground

by jarod51

HTML

<div id="cssmenu">
    <ul id="list">
        <li>
            <ul>
                <li class="hide"><a href="#home_2">Home2</a></li>
            </ul>
            <a href="#home">Home</a>
        </li>
        <li><a href="#newsletter">Newsletter</a></li>
        <li>
            <ul>
                <li class="hide"><a href="#directions_2">Directions2</a></li>
            </ul>
            <a href="#directions">Directions</a>
        </li>
        <li><a href="#contact">Contact us</a></li>
		<li>
            <ul>
                <li class="hide"><a href="#actor_2">Actor2</a></li>
		        <li class="hide"><a href="#actor_3">Actor3</a></li>
            </ul>
            <a href="#actor">Actor</a>
        </li>
		<li>
            <ul>
                <li class="hide"><a href="#market_2">Market2</a></li>
                <li class="hide"><a href="#market_3">Market3</a></li>
            </ul>
            <a href="#market">Market</a>
        </li>
		<li><a href="#calendar">Calendar</a></li>		
    </ul>
    <button id="prev">Previous</button>
    <button id="next">Next</button>
</div>
<div id="wrap">
    <div id="home" class="panel">
    <h2>Home</h2>
    </div>
	<div id="home_2" class="panel">
    <h2>We are still in Home</h2>
    </div>
    <div id="newsletter" class="panel">
        <h2>Newsletter</h2>
    </div>
    <div id="directions" class="panel">
        <h2>Directions</h2>
    </div>
    <div id="directions_2" class="panel">
        <h2>Directions2</h2>
    </div>
    <div id="contact" class="panel">
        <h2>Contact</h2>
    </div>
	<div id="actor" class="panel">
        <h2>actor</h2>
    </div>
	<div id="actor_2" class="panel">
        <h2>we are still in actor</h2>
    </div>
	<div id="actor_3" class="panel">
        <h2>we are still in actor</h2>
    </div>
	<div id="market" class="panel">
        <h2>market</h2>
    </div>
	<div id="market_2" class="panel">
        <h2>we are still in market</h2>
    </div>
	<div id="market_3" class="panel">
      ...

CSS

body {
    margin: 0;
}

body, #wrap, .panel {
    height: 100%;
    overflow: hidden;
    position: relative;
}

.panel {
    width: 100%;
	display: table;
    background: #eee;
}


#wrap {
    width: 1300%; /* 100 multiplied by the number of sections ( 13 ) */
	margin: 0 auto;
    margin-top: 110px;
    float: left;
}

#wrap > div {
    width: 7.69%; /* 100 divided by the number of sections ( 13 ) */
    float: left;
}

#cssmenu {
    width: 100%;
    position: fixed;
}

#cssmenu ul {
    margin: 0;
    padding: 0;
    font-size: 12px;
    font-weight: bold;
    background: #f2f1f2;
    font-family: Arial, Helvetica, sans-serif;
    border-bottom: 1px solid #f2f1f2;
}

#cssmenu ul:before {
    content: '';
    display: block;
}

#cssmenu ul:after {
    content: '';
    display: table;
    clear: both;
}

#cssmenu ul li {
    float: left;
    margin: 0 auto;
    padding: 0;
    list-style: none;
    position: relative;
}

#cssmenu > ul > li:hover ul {
    display: block;
}

#cssmenu ul li a {
    width: 70px;
    display: block;
    float: left;
    color: #797978;
    text-decoration: none;
    font-weight: bold;
    padding: 10px 20px 7px 20px;
    border-bottom: 3px solid transparent;
    text-align: center;
}

#cssmenu ul li a:hover {
    color: #6c8cb5;
    border-bottom: 3px solid #00b8fd;
}

#cssmenu > ul > li.active > a, #cssmenu ul li ul li.active a {
    display: inline;
    border-bottom: 3px solid #00b8fd;
    float: left;
    margin: 0;
}

#cssmenu ul li ul {
    top: 35px;
    left: 0;
    position: absolute;
    z-index: 1;
    display: none;
}

#cssmenu ul li ul + a:before {
    content: ">";
    position: absolute;
    right: 10px;
    -webkit-transform: rotate(90deg);
}
.hide {
display:none;
}

JavaScript

$(function () {
		var 
			animation = function ( element ) {
				var 
					name = "active",
					href = $( element ).attr( "href" ),
                    hide = element.parent().hasClass( "hide" );
				
				$( "html, body" ).stop().animate( {
					scrollLeft: $( href ).offset().left
				}, 1200 );
				
				menu.find( "li" ).removeClass( "active" );
                hide ? element.closest( "ul" ).parent().addClass( name ) : "";
				element.parent().addClass( name );
			},
			menu = $( "#list" );
			
		$( "#cssmenu ul li a" ).bind( "click", function( event ) {
			animation( $( this ) );
			
			event.preventDefault();
		} );
		
		$( "#next, #prev" ).click( function ( event ) {
			var
				positionActiveClass = menu.find( "> li.active" ).index(),
				menuLength = menu.find( "> li" ).length - 1,
				buttonId = $( this ).attr( "id" ),
                hide = $( menu ).find( "li.active" ).hasClass( "hide" );
			
			if ( buttonId === "next" ) {
				if ( positionActiveClass === menuLength ) {
					newElementActiveClass = menu.find( "li" ).eq( 0 ).find( "> a" );
					
					animation( newElementActiveClass );
				} else if ( hide ) {
                    newElementActiveClass = $( menu ).find( "li.active" ).closest( "li" ).next().find( " > a" );
                    console.log(newElementActiveClass);
                    
                    animation( newElementActiveClass );
                } else {
					newElementActiveClass = menu.find( "li" ).eq( positionActiveClass + 1 ).find( "> a" );
					
					animation( newElementActiveClass );
				}
			} else {
				if ( positionActiveClass === 0 ) {
					newElementActiveClass = menu.find( "li" ).eq( menuLength ).find( "> a" );
					
					animation( newElementActiveClass );
				} else if ( hide ) {
                    newElementActiveClass = $( menu ).find( "li.active.hide" ).closest( "li.active" ).prev().find( " > a" );
                    
                    animation( newElementActiveClass );
                } else...