so how can I using setInterval to make my custom jquery slider change to the next slide each X seconds, I also set up next and prev buttons to navigate the sliders freely, problem is I want the timer to restart when one of these buttons is clicked. How could I do this?
This is the logic behing my jquery slider, it's fairly simple I think. I use active class to make the selected slider visible.
var interval = 7000;
var sliders = $('.slider');
var dots = $('.dot');
var index = 0;
var show_index = 0;
//make first slider visible
$('.slider').eq(show_index).addClass('slider_active');
//give first navigation dot the active class
$('.dot').eq(show_index).addClass('slider_active_dot');
console.log(show_index);
console.log(sliders.length);
setInterval(function() {
if(show_index == (sliders.length- 1)){
$('.slider').eq(show_index).removeClass('slider_active');
show_index = 0; // set it here
$('.slider').eq(show_index).addClass('slider_active');
$('.dot').removeClass('slider_active_dot');
$('.dot').eq(show_index).addClass('slider_active_dot');
console.log(show_index);
}
else{
$('.slider').eq(show_index).removeClass('slider_active');
show_index = show_index + 1; // set it here
$('.slider').eq(show_index).addClass('slider_active');
$('.dot').removeClass('slider_active_dot');
$('.dot').eq(show_index).addClass('slider_active_dot');
console.log(show_index);
}
}, interval);
$('.prev').click(function(){
console.log('clicked prev');
if(show_index == 0){
$('.slider').eq(show_index).removeClass('slider_active');
show_index = (sliders.length - 1);// set it here
$('.slider').eq(show_index).addClass('slider_active');
$('.dot').removeClass('slider_active_dot');
$('.dot').eq(show_index).addClass('slider_active_dot');
console.log(show_index);
}
else{
$('.slider').eq(show_index).removeClass('slider_active');
show_index = show_index - 1; // set it here
$('.slider').eq(show_index).addClass('slider_active');
$('.dot').removeClass('slider_active_dot');
$('.dot').eq(show_index).addClass('slider_active_dot');
console.log(show_index);
}
});
$('.next').click(function(){
console.log('clicked next');
if(show_index == (sliders.length- 1)){
$('.slider').eq(show_index).removeClass('slider_active');
show_index = 0; // set it here
$('.slider').eq(show_index).addClass('slider_active');
$('.dot').removeClass('slider_active_dot');
$('.dot').eq(show_index).addClass('slider_active_dot');
console.log(show_index);
}
else{
$('.slider').eq(show_index).removeClass('slider_active');
show_index = show_index + 1; // set it here
$('.slider').eq(show_index).addClass('slider_active');
$('.dot').removeClass('slider_active_dot');
$('.dot').eq(show_index).addClass('slider_active_dot');
console.log(show_index);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>