Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.09.2014, 21:06
Новичок на форуме
Отправить личное сообщение для tanto39 Посмотреть профиль Найти все сообщения от tanto39
 
Регистрация: 28.06.2014
Сообщений: 9

Проблема с next()
Пытаюсь сделать фотогалерею, проблема возникла при внедрении стрелочек вперед и назад, чтобы картинки листались. Для этого при клике по стрелке сравниваю атрибут сорс преьюшек и большой картинки, и если он совпадает, меняю src большой картинки на srs следующей превьюшки. Со стрелкой "назад" все нормально, но когда жму на стрелку для показа следующей картинки, сразу последняя картинка появляется. Архив со скриптом во вложении. ПАМАГИТЕ ПОСОНЫ!!!

код скрипта:
$(document).ready(function() {
	$(document).click( function(event){
		if( $(event.target).closest(".big-img").length ) 
		return;
		$(".modal").css("display","none");
		$(".fon-gallery").css("display","none");
			event.stopPropagation();
		});
		$('.box-img img').click(function(){
		$('.big-img img').attr('src', $(this).attr('src'));
		$('.modal').css("display","block");	
		$('.fon-gallery').css("display","block");

		return false;
		});
		
		
		$('.prev').click(function(){
			$('.box-img img').each(function(){
			if (($(this).attr('src')) == ($('.big-img img').attr('src'))){
				var a = $(this).parent().prev().children().attr('src');
			};
			$('.big-img img').attr('src', a);
			});	
		});
		
		
		//до этого все нормально, а тут и проблема
		$('.next').click(function(){
			$('.box-img img').each(function(){
			if (($(this).attr('src')) == ($('.big-img img').attr('src'))){
				var a = $(this).parent().next().children().attr('src');
			};
			$('.big-img img').attr('src', a);
			});	
		});
		
		
});


верстка:
Код:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Слайдшоу</title>
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="js/slaider.js"></script>
<link rel="stylesheet" href="css/style.css" type="text/css"/>
</head>

<body>
<div class="gallery">
	<div class="modal">
		<div class="gal-close">X</div>
		<div class="big-img">
		<img src="images/gallery/man1.jpg"/>
        <div class="prev">Назад</div>
        <div class="next">Вперед</div>
		</div>
	</div>
	<div class="box-img">
		<div class="img-cont"><img class="min-img" src="images/tachka1.jpg"/></div>
		<div class="img-cont"><img class="min-img" src="images/tachka2.jpg"/></div>
		<div class="img-cont"><img class="min-img" src="images/tachka3.jpg"/></div>
	</div>
</div>
<div class="fon-gallery"></div>
</body>
</html>

Стили CSS:
Код:
/*------gallery------*/
.modal{
	position: fixed;
	display: none;
	width: 700px;
	height: 530px;
	top: 50px;
	z-index: 1000;
}
.gal-close{
	width: 20px;
	height: 20px;
	float: right;
	position: relative;
	top: 26px;	
	cursor: pointer;
	font-weight: bold;
	color: #ffffff;
	background: #30E728;
	text-align: center;
}
.big-img, .big-img img{
	width: 700px;
	height: 500px;
}
.big-img img{
	border: 3px solid #7B090B;
}
.box-img img{
	float: left;
	width: 220px;
	height: 180px;
	margin: 20px;
	cursor: pointer;
}
.prev, .next{
	position: absolute;
	top: 120px;
	width: 77px;
	height: 100px;
	z-index: 100;
	cursor: pointer;
}
.prev{
	background: url(../images/left.png) top center no-repeat;
	left: 0px;
}
.next{
	right: 0px;
	background: url(../images/right.png) top center no-repeat;
}
.fon-gallery{
	background: #000000;
	width: 100%;
	height: 100%;
	opacity: 0.5;
	position: absolute;
	display: none;
	left: 0;
	top: 0;
}
Вложения:
Тип файла: zip Фотогалерея.zip (254.6 Кб, 1 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 08.09.2014, 21:39
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Сообщение от tanto39
когда жму на стрелку для показа следующей картинки, сразу последняя картинка появляется
в блоке
$('.next').click...

после строки
$('.big-img img').attr('src', a);

можно добавить строку
if (a) { return false; }

это остановит цикл each, сразу после нахождения след. картинки и обновления '.big-img img'

Последний раз редактировалось Pavel M., 09.09.2014 в 18:48.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с радио кнопками px379 Общие вопросы Javascript 8 29.07.2013 09:30
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47