Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.06.2013, 19:06
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Смена картинок с эффектом
Написал простой слайдер, который отображается картинки в зависимости от того на какой элемент списка мы наводим курсор.
Структура следующая:

<div class="wrapper">
	<div class="display">
		<div class="slide show"><img src="img1.png"></div>
		<div class="slide"><img src="img2.png"></div>
		<div class="slide"><img src="img3.png"></div>
	</div>
	<div class="switches">
		<ul>
			<li class="curr">Картинка 1</li>
			<li>Картинка 2</li>
			<li>Картинка 3</li>
		</ul>
	</div>
</div>


$("div.switches li").hover(function() {
	$("div.switches li").removeClass("curr");
	$(this).addClass("curr");
	var index_switch = $(this).index();
	$("div.display div.slide").removeClass("show").eq(index_switch).addClass("show");
});


Все работает, все класс. Только возникла необходимость добавить смену картинок с эффектом.
Слайдер подключать ради такой мелочи както не хочется. Тем более что с задачей почти справился. Тем не менее есть один косяк.

Придумал следующую логику.
1. Все контейнеры с картинками (div.slide) делаем видимыми + прописываем position: absolute чтобы в стопку лежали.
2. Обнуляем для всех их z-index: 0.
3. Первой и второй задаем z-index: 2 и 1 соответственно, чтобы сразу за отображаемой лежала следующая.
4. При наведении на следующую делаем у предыдущей fadeOut и обнуляем z-index для всех.
5. Затем для текущей ставим z-index: 2 а для следующей z-index: 1.

Вроде по логике все верно, но почемуто первая смена первой и второй картинки происходит без эффекта.

Подскажите верно ли я логику составил и может быть лучше и легче воспользоваться готовым слайдером?
Ответить с цитированием
  #2 (permalink)  
Старый 06.06.2013, 21:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

spo,
Вариант...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
     <meta charset="utf-8" />
   <style type="text/css">
   .curr{
     border: #CC0000 2px solid;
     cursor: default;
   }

   img{
     display: none;
     position: absolute;
   }

   .show img{
     display: block;
   }

   .display{
     height: 100px;
   }
   </style>
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script>
  $(function(){
	$('.switches li').mouseenter(function(){
    if($(this).hasClass("curr")) return;
    $(".switches li").removeClass("curr");
    $(this).addClass("curr");
    var index_switch = $(this).index();
    $('.display img').stop().fadeOut(500).eq(index_switch).fadeIn(1500)
		  			});
});
  </script>
</head>

<body>
<div class="wrapper">
	<div class="display">
		<div class="slide show"><img src="http://allanimation.narod.ru/cifri/11.gif"></div>
		<div class="slide"><img src="http://allanimation.narod.ru/cifri/12.gif"></div>
		<div class="slide"><img src="http://allanimation.narod.ru/cifri/13.gif"></div>
	</div>
	<div class="switches">
		<ul>
			<li class="curr">Картинка 1</li>
			<li>Картинка 2</li>
			<li>Картинка 3</li>
		</ul>
	</div>
</div>

</body>

</html>

Последний раз редактировалось рони, 06.06.2013 в 21:34.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не совсем обычная смена картинок (по расписанию) barcaman Общие вопросы Javascript 1 04.03.2013 15:40
Смена нескольких картинок при наведении Demoni Элементы интерфейса 8 28.04.2012 23:57
Плавная смена нескольких картинок shurik330 jQuery 0 10.02.2012 16:10
Валидный скрипт смена картинок boss Javascript под браузер 2 17.08.2011 20:21
Смена картинок в зависимости от положения курсора мыши antonio_vrn Events/DOM/Window 3 31.05.2011 22:07