Доброго времени суток) Решил попрактиковаться с js нашел интересный слайдер решил повторить. Вроде как все вышло, но при первом переходе между классами происходит резко дальше заменяется все как надо. Думал что проблема в последовательности команд пробовал всякие вариации менял местами и ничего. Объясните в чем проблема и как ее решить за ранее благодарен)
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8" />
<title>Документ без названия</title>
<style>
/* sleider3---------------------------------- */
#slide3{
width:400px;
height:400px;
margin:auto;
}
#img1{
margin:auto;
background-color:#7E6497;
width:400px;
height:400px;
position:absolute;
}
#img2{
margin:auto;
background-color:#D0FF00;
width:400px;
height:400px;
position:absolute;
}
#img3{
margin:auto;
background-color:#00C8FF;
width:400px;
height:400px;
position:absolute;
}
#img4{
margin:auto;
background-color:red;
width:400px;
height:400px;
position:absolute;
}
.of{
display: none;
}
.active{
display: block !important;
}
</style>
</head>
<body>
<div id='an3'><header id="slide3">
<div id=slider>
<div id="img1" class="of active"></div>
<div id="img2" class="of"></div>
<div id="img3" class="of"></div>
<div id="img4" class="of"></div>
</div>
<div id="levo1"></div>
<div id="pravo1"></div>
</header></div>
</fieldset>
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.js"></script>
<script>
$(function(){
var timer = setTimeout(function test(){
var active = $('.active');
var ImgIndex = $('.active').index();
var NextImgIndex = ImgIndex + 1;
var NextImg = $(' #slider > .of').eq(NextImgIndex);
active.fadeOut(1500);
active.removeClass('active');
if( NextImgIndex === ($('#slider > .of:last').index()+1)){
$(' #slider > .of').eq(0).fadeIn(1500);
$(' #slider > .of').eq(0).addClass('active');
}
else{
NextImg.fadeIn(1500);
NextImg.addClass('active');
}
setTimeout(test, 5000);
},5000)
})
</script>
</body>
</html>