Is it possible to create such a menu without using js? while only absolute positioning and shifting by a given number of pixels up / down with jquery, which I didn’t really want to use, comes to mind
upd: in the end I did something similar with jquery, if someone needs working code:
/* приминает: id элемента, сдвиг в пикселях, у меня с двух сторон слайдеры, по этому сторону слайдера */ function carousel(id, topPl, side) { var p1 = 'calc(50% - ' + topPl + 'px)'; $('#' + side + '-checker').css('top', p1); $('#' + side + '-' + id).siblings().css('opacity', 0.3); $('#' + side + '-' + id).css('opacity', 1); } html { font-family: sans-serif; } /* Carousels */ .carousel { box-shadow: inset 0px 0px 10px 5px rgba(255, 255, 255, 0.5); } .carousel ul { position: absolute; width: 100%; top: calc(50% - 280px); margin: auto; padding: 0; list-style: none; -webkit-transition: 0.1s linear; transition: 0.1s linear; } .carousel li { display: block; height: 80px; cursor: pointer; color: #fff; text-transform: uppercase; text-align: center; line-height: 80px; } #left-carousel { width: 350px; height: 100vh; background: rgba(0, 0, 0, 0.5); position: absolute; left: 0; } #left-carousel #choise { position: absolute; top: calc(50% - 25px); left: 325px; } <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="carousel" id="left-carousel"> <ul id="left-checker"> <li id="left-1" onclick="carousel(1,40,'left')">text</li> <li id="left-2" onclick="carousel(2,120,'left')">text</li> <li id="left-3" onclick="carousel(3,200,'left')">text</li> <li id="left-4" onclick="carousel(4,280,'left')">text</li> <li id="left-5" onclick="carousel(5,360,'left')">text</li> <li id="left-6" onclick="carousel(6,440,'left')">text</li> <li id="left-7" onclick="carousel(7,520,'left')">text</li> </ul> </div> 