JSFiddle - React, Tailwind, and code Playground
HTML
<div class="slider">
<div id="side-nav">
<div class="section-1">
<a id="section-1" class="section"><span>1</span></a>
</div>
<div class="section-2">
<a id="section-2" class="section"><span>2</span></a>
</div>
<div class="section-3">
<a id="section-3" class="section"><span>3</span></a>
</div>
<div class="section-4">
<a id="section-4" class="section"><span>4</span></a>
</div>
</div>
<div id="main-container-background">
<div class="s1">
<img src="http://placehold.it/762x360"/>
</div>
<div class="s2">
<img src="http://placehold.it/762x360"/>
</div>
<div class="s3">
<img src="http://placehold.it/762x360"/>
</div>
<div class="s4">
<img src="http://placehold.it/762x360"/>
</div>
</div>
</div>
CSS
.slider {
text-align:center;
margin:0 auto;
margin:0 0 4px;
height:100%;
max-height:360px;
overflow:hidden;
border-radius:8px;
}
.slider img {
/*
width: 762px;
height: 360px;
*/
width:100%;
}
.slider > #side-nav {
position:relative;
height:360px;
float:left;
background:#f1f4f5;
z-index:1;
}
.slider > #side-nav > div {
max-height:90px;
text-align:left;
}
.slider > #side-nav > div > a {
display:block;
padding:5px 10px;
}
.slider > #side-nav span {
cursor:pointer;
}
.slider > #main-container-background {
position:relative;
}
.slider > #main-container-background > div {
position:relative;
bottom:360px;
}
JavaScript
jQuery.fn.vertSlider = function(options) {
jQuery('#main-container').css('overflow', 'hidden');
jQuery('#side-nav').css('visibility', 'visible');
return this.each(function() {
jQuery(this).click(function() {
var index = jQuery('#side-nav a').index(this);
jQuery(this).parent().removeClass('remove-right-border');
jQuery(this).parent().siblings().addClass('remove-right-border');
jQuery("#main-container-background").animate({ top: index * -360 }, 'slow');
});
});
};
jQuery(document).ready(function() {
jQuery("#side-nav a").vertSlider({
});
});