jQuery(document).ready(function ($) { var $slider = $('.mm-hero-slider'); var $slides = $slider.find('.mm-hero-slide'); var $dots = $slider.find('.mm-hero-slider__dot'); var currentIndex = 0; var slideCount = $slides.length; var intervalTime = 5000; var sliderInterval; function goToSlide(index) { if (index >= slideCount) index = 0; if (index < 0) index = slideCount - 1; $slides.removeClass('is-active').attr('aria-hidden', 'true'); $slides.eq(index).addClass('is-active').attr('aria-hidden', 'false'); $dots.removeClass('is-active'); $dots.eq(index).addClass('is-active'); currentIndex = index; } function startSlider() { sliderInterval = setInterval(function () { goToSlide(currentIndex + 1); }, intervalTime); } function resetSlider() { clearInterval(sliderInterval); startSlider(); } $slider.find('.mm-hero-slider__arrow--next').on('click', function () { goToSlide(currentIndex + 1); resetSlider(); }); $slider.find('.mm-hero-slider__arrow--prev').on('click', function () { goToSlide(currentIndex - 1); resetSlider(); }); $dots.on('click', function () { var target = $(this).data('slide'); goToSlide(target); resetSlider(); }); goToSlide(0); startSlider(); });