JSFiddle - React, Tailwind, and code Playground

HTML

<div class="menu">
        <ul>
            <li>
                Главная            
            </li><!--
            --><li>
                Раздел 1
                <ul>
                    <li>Пункт 1</li>
                    <li>Пункт 2</li>
                </ul>
            </li><!--
            --><li>
                Раздел 2
                <ul>
                    <li>Пункт 1</li>
                </ul>
            </li>
        </ul>
        <span id="left">&#8656;</span>
        <span id="right">&#8658;</span>
    </div>

CSS

.menu{
    width:200px;
    margin:0px 15px;
    border-left:1px solid #bbb;  
    position:relative;
    z-index:2;
}
.menu ul{
    margin:0px;
    padding:0px;
}
.menu li{
    position:relative;
    display:block;
    margin:0px;
    padding:0px;
    text-align:center;
    cursor:pointer;
}
.menu>ul{
    white-space:nowrap;
    position:relative;
}
.menu>ul>li{
    display:inline-block;
    width:99px;
    border-right:1px solid #bbb;
}
.menu li>ul{
    position:absolute;
    left:-1px;
    background:#fff;
    border:1px solid #bbb;
    min-width:100%;
    display:none;
}
.menu li:hover>ul{
    display:block;
}
.menu>span{
    position:absolute;
    top:0px;
    cursor:pointer;
}
.menu>#left{
    left:-15px;
}
.menu>#right{
    right:-15px;
}

JavaScript

$(document).ready(function()
{
    var menu_pos = 0;
    var menu_item = $('.menu').innerWidth() / ($('.menu>ul>li').innerWidth() + 1);
    var menu_length = $('.menu>ul').children().length;
    
    menu(0);
    
    $('#left').click(function()
    {
        menu(1);
    });
    $('#right').click(function()
    {
        menu(-1);
    });
 
    function menu(shift)
    {
        if(((menu_pos + shift) >= 0) && ((menu_pos + shift) <= (menu_length - menu_item)))
        {
            menu_pos += shift;
            $('.menu>ul>li').each(function(n,elem)
            {
                if(n < menu_pos) $(elem).hide();
                else if(n > (menu_pos + menu_item - 1)) $(elem).hide();
                else $(elem).show();
            });
        }
    }
});