Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.05.2015, 22:38
Интересующийся
Отправить личное сообщение для malevi4 Посмотреть профиль Найти все сообщения от malevi4
 
Регистрация: 23.05.2015
Сообщений: 11

Помогите доделать слайдер
Добрый вечер. Сразу скажу, что я только начинаю свой путь в JS и много чего еще не знаю, либо делаю вовсе некорректно.

У меня задача - сделать простой слайдер из 4х картинок. Сам слайдер работает, переключает картинки нормально. Все как я и запланировал. Только есть один небольшой нюанс, когда выбрана первая картинка, нужно чтобы первый квадратик на слайде менял цвет, когда выбрана вторая картинка слайда, нужно чтобы второй квадратик менял цвет и так далее.

Так выглядит слайд


Вот ХТМЛ код слайда:

<div id="telo">
	<div id="levo"></div>
	<div id="pravo"></div>
	
		<div id="knopki"> // собственно, это и есть мои "квадратики"
		<span id="01"> </span> 
		<span id="02"> </span>
		<span id="03"> </span>
		<span id="04"> </span>
		
		</div>
	
	<img id="img" src="" alt="">
	
</div>


Вот JS

var images = ["01.jpg","02.jpg","03.jpg","04.jpg"]; 
var curentImage = 0; 


$("#img").attr('src',images[curentImage]); 



$('#levo').click(function(){ 
	if(curentImage != 0){ 
	curentImage--; 
	setTimeout(function(){$("#img").attr('src',images[curentImage])},300); 
	}
	

});

$('#pravo').click(function(){
	if(curentImage < images.length){
	curentImage++;
	setTimeout(function(){$("#img").attr('src',images[curentImage])},300);

	}
});


Вот как я планировал решить данную задачу (решений было много, но это одно из последних): хотел в функцию выборки $('#pravo') написать следующее

if(images[curentImage] == "01.jpg"){
   $('#01').addClass('active'); // #01 - это id первого квадратика. Новый класс ему добавить серый фон. То есть, если images[curentImage] будет первой картинкой, то первому квадратику дать фон серым.
}


У меня ничего не вышло. Может вы что-то посоветуете? Или подскажите что я делаю не правильно.
Ответить с цитированием
  #2 (permalink)  
Старый 23.05.2015, 22:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

setTimeout(function(){$("#img").attr('src',images[curentImage]);$('#telo span').removeClass('active').eq(curentImage).addClass('active')},300);
Ответить с цитированием
  #3 (permalink)  
Старый 23.05.2015, 23:11
Интересующийся
Отправить личное сообщение для malevi4 Посмотреть профиль Найти все сообщения от malevi4
 
Регистрация: 23.05.2015
Сообщений: 11

рони,
Отлично, спасибо большое. Три часа думал как решить поставленную задачу, а кому-то и минуты хватило

Насколько я понимаю, .eq() отвечает именно за тот span, который должен подсвечиваться? А в кавычках номер текущей фотки с массива (соответственно, и номер спана).
Ответить с цитированием
  #4 (permalink)  
Старый 23.05.2015, 23:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

malevi4,
чтоб не искать убираем 'active' у всех span устанавливаем 'active' у нужного
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите подружить слайдер с input Alex57B Элементы интерфейса 17 19.10.2016 12:28
Слайдер - карусель блоков (помогите пожалуйста) Viktor.Poberezhniy Общие вопросы Javascript 3 22.07.2014 12:46
Помогите Исправить Слайдер! OgecuT (X)HTML/CSS 0 27.05.2014 11:11
Помогите найти похожий слайдер Maxim_sheva Элементы интерфейса 5 12.11.2013 14:05
Помогите плизз доделать слайдер olehpdatu Элементы интерфейса 2 02.07.2013 23:01