Показать сообщение отдельно
  #1 (permalink)  
Старый 20.09.2018, 18:15
Аспирант
Отправить личное сообщение для oleg901 Посмотреть профиль Найти все сообщения от oleg901
 
Регистрация: 12.08.2018
Сообщений: 54

Некорректная работа слайдшоу
Доброго времени суток) Решил попрактиковаться с 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>

Последний раз редактировалось oleg901, 20.09.2018 в 18:35.
Ответить с цитированием