Without some code it’s hard to help you 100%. But come on:
This slider uses the same list of images for the two sliders (in the main slider not only has the image, but all right).
What I would do is this:
Create div’s with the size of the user’s screen, place the content and create the thumbnails in absolute position.
Regarding javascript and jQuery in would put a setInterval to change the slide and div’s. For 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: http://tableless.com.br/css-transforms/
Understand that you don’t need href to move 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 each div’s container and mini slider each have another div inside them. The reason is because the container div and the Nav mini-slider-container must have fixed size, in the case of the 100% div of the screen and the Nav the size you want it to be your mini slider. The inside div will have a size of the number of elements and spacing between them. Soon the div container and the Nav mini-slider-container will have as css overflow:hidden
to hide elements that exceed their limit.
With regard to 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 above code was to take the div’s that will contain the elements of either will be moved to make the slider function (in the case sliderContainer and miniSlider ). I took the buttons to click (arrowUp, arrowBottom ). The position that is each of the sliders (sliderY , miniSliderY), the displacement unit (sliderUnit , miniSliderUnit) and the maximum size (sliderMaxSize , miniSliderMaxSize) that you can reach in order to return the slider to the first element.
After that I used the logic I talked about, I moved the internal div of the containers in the click events. With each click I incremented 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 answer as you do a slider that neither what you showed is not an easy task to do because they require various specific knowledge together. But I believe I gave you an idea of how to do.
Another tip is to see if this slider fits your needs: http://www.idangero.us/swiper/#. Vx_6kvlvhbc
I modified the script to help organize it and create a closure for the Gallery, now it is possible to have multiple galleries on the page.
– Tobias Mesquita