Добавление анимации FadeIn и FadeOut при переходе слайдов и зацикливание галереи

Доброе время суток. Наткнулся на YouTube на видео о том, как сделать простенькую jQuery галерею. В попытках улучшить её, добавить анимации FadeIn и FadeOut при переходе слайдов, зациклить, чтобы можно было переходить с первого на последний, и наоборот, претерпел неудачу, ввиду отсутствия знаний. Прошу вашей помощи.

Попытка сделать анимации FadeIn и FadeOut, но они слишком резкие, и изображение появляется раньше анимации.

По поводу зацикливания, пытался посчитать количество элементов в #slider, var slideCount = $('#slider').children().length;

$(document).ready(function(){
  $('.next').on('click', function(){
    var currentImg = $('.active');
    var nextImg = currentImg.next();

    if(nextImg.length){
      currentImg.removeClass('active').css('z-index', -10);
      nextImg.addClass('active').css('z-index', 10);
      $( ".active" ).fadeOut();
      $( ".active" ).fadeIn();
    }

  });

  $('.prev').on('click', function(){
    var currentImg = $('.active');
    var prevImg = currentImg.prev();


    if(prevImg.length){
      currentImg.removeClass('active').css('z-index', -10);
      prevImg.addClass('active').css('z-index', 10);
      $( ".active" ).fadeOut();
      $( ".active" ).fadeIn();
    }
  });
});

$(document).ready(function() {
  $('.next').on('click', function() {
    var currentImg = $('.active');
    var nextImg = currentImg.next();

    if (nextImg.length) {
      $(".active").fadeIn();
      currentImg.removeClass('active').css('z-index', -10);
      nextImg.addClass('active').css('z-index', 10);
    }

  });

  $('.prev').on('click', function() {
    var currentImg = $('.active');
    var prevImg = currentImg.prev();


    if (prevImg.length) {
      currentImg.removeClass('active').css('z-index', -10);
      prevImg.addClass('active').css('z-index', 10);
    }
  });
});
a {
  color: #fff;
  text-decoration: none;
}

h1 {
  text-align: center;
}

.container {
  width: 540px;
  margin: 40px auto;
  overflow: auto;
}

.slider-inner {
  width: 500px;
  height: 300px;
  position: relative;
  overflow: hidden;
  float: left;
  padding: 3px;
  border: #666 solid 1px;
}

.slider-inner img {
  display: none;
  width: 500px;
  height: 300px;
}

.slider-inner img.active {
  display: inline-block;
}

.prev,
.next {
  float: left;
  margin-top: 130px;
  cursor: pointer;
}

.prev {
  position: relative;
  margin-right: -45px;
  z-index: 100;
}

.next {
  position: relative;
  margin-left: -45px;
  z-index: 100;
}
<!DOCTYPE html>
<html>

<head>
  <title>JQSlider</title>
  <link rel="stylesheet" href="css/style.css">
  <script src="https://code.jquery.com/jquery-3.1.1.js" integrity="sha256-16cdPddA6VdVInumRGo6IbivbERE8p7CQR3HzTBuELA=" crossorigin="anonymous"></script>
  <script src="js/main.js"></script>
</head>

<body>
  <div class="container">
    <div class="slider-outer">
      <img src="images/arrow-left.png" class="prev" alt="Prev">
      <div class="slider-inner" id="slider">
        <img src="images/image1.jpg" alt="image1" class="active photo">
        <img src="images/image2.jpg" alt="image2" class="photo">
        <img src="images/image3.jpg" alt="image3" class="photo">
        <img src="images/image4.jpg" alt="image4" class="photo">
        <img src="images/image5.jpg" alt="image5" class="photo">
        <img src="images/image6.jpg" alt="image6" class="photo">
        <img src="images/image7.jpg" alt="image7" class="photo">
        <img src="images/5.jpg" alt="5" class="photo">
      </div>
      <img src="images/arrow-right.png" class="next" alt="Next">
    </div>
  </div>
</body>

</html>


Ответы (0 шт):