Without some code it is difficult to help you 100%. But let's go:
This slider uses the same list of images for the two sliders (in the main slider there is not only the image, but that's fine).
What I would do would be this:
It would create div's with the size of the user's screen, place the content and create the thumbnails in absolute position.
With respect to javascript and jQuery I would put a setInterval to swap the slide and the div's. For the div I would use a transform: translate and for the mini slider I would use a transform translate and scale at the same time.
look at the tableless link: link
Understand that you do not need href to move the div's and mini sliders.
A very simple example of what I said:
<div id="container">
<div id="slider-container">
<div id="content-1"></div>
<div id="content-2"></div>
<div id="content-3"></div>
</div>
</div>
<nav id="mini-slider-container">
<div id="arrow-up"></div>
<ul id="mini-slider">
<li id="element-1"></li>
<li id="element-2"></li>
<li id="element-3"></li>
</ul>
<div id="arrow-bottom"></div>
</nav>
Note that the div's container and the mini slider container each have another div inside them. The reason is because the container div and the nav mini-slider-container must have a fixed size, in the case of the div 100% of the screen and nav the size you want your mini slider to be. The inside div will have a size of the number of elements and spacing between them. Soon the container div and the nav mini-slider-container will have as css overflow:hidden
to hide elements that exceed their limit.
Regarding javascript:
var sliderContainer= document.getElementById('slider-container'),
miniSlider = document.getElementById('mini-slider'),
arrowUp = document.getElementById('arrow-up'),
arrowBottom = document.getElementById('arrow-bottom'),
sliderY = 0,
sliderUnit = 1080,
miniSliderUnit = 100,
miniSliderY = 0,
sliderMaxSize = 1080 * 3,
miniSliderMaxSize = 150 * 3;
arrowUp.addEventListener('click', function(){
if(sliderY >= sliderUnit){
sliderY -= sliderUnit;
}
else{
sliderY = sliderMaxSize;
}
if(miniSliderY >= miniSliderUnit){
miniSliderY -= miniSliderUnit;
}
else{
miniSliderY = miniSliderMaxSize;
}
sliderContainer.style.transform = 'translateY(' + sliderY + 'px)';
miniSliderContainer.style.transform = 'translateY(' + miniSliderY + 'px)';
});
arrowBottom.addEventListener('click', function(){
if(sliderY < sliderMaxSize){
sliderY += sliderUnit;
}
else{
sliderY = 0;
}
if(miniSliderY < miniSliderMaxSize){
miniSliderY += miniSliderUnit;
}
else{
miniSliderY = 0;
}
sliderContainer.style.transform = 'translateY(' + sliderY + 'px)';
miniSliderContainer.style.transform = 'translateY(' + miniSliderY + 'px)';
});
What I did in the code above was to get the div's that will contain the elements of either will be moved to make the slider function (in this case sliderContainer and miniSlider). I got the buttons to click (arrowUp, arrowBottom). The position of each of the sliders (sliderY, miniSliderY), the sliderUnit, miniSliderUnit, and the maximum size (sliderMaxSize, miniSliderMaxSize) that can reach to be able to return the slider to the first element.
After that I used the logic I mentioned, I moved the internal div of the containers in the click events. With each click I increased or decreased the displacement unit, saved in the position of each slider and applied the transform.
I believe that this code is not totally correct, because to respond as if a slider does not even what you showed is not an easy task to do because they require several specific knowledge together. But I believe I have given you an idea how to do it.
Another tip and see if this slider fits your needs: link