Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите написать правильный код (https://javascript.ru/forum/dom-window/50974-pomogite-napisat-pravilnyjj-kod.html)

eucalipt 19.10.2014 18:14

Помогите написать правильный код
 
Здравствуйте, делаю что-то на подобии карусели на сайт, только вместо прокручивания, блоки карусели должны медленно исчезать, а на их месте должны появляться другие. У меня уже есть идея, как это можно сделать, только не получается написать правильный код.

Итак, сама идея. Как только проходит определенный промежуток времени, сразу к элементу карусели (div.slide) должен добавляться класс active. По умолчанию прозрачность всех элементов будет равна нулю. А если к нему был добавлен класс active, то мы меняем прозрачность на 1. (Кстати, думал сделать не с прозрачностью, а с visibility иди display, какие у вас мысли по этому поводу).

Собственно, попытался организовать это следующим скриптом.
$(document).ready(function() {
	
	$numSlides = $("div.mgr div.slide").length;
	$slide = $("div.mgr div.slide");
	
	for (var i = 1; i <= $numSlides; i++) {
		
		setTimeout(function() {
		
			$("div.mgr div.slide." + i).addClass("active");
			
		}, 5000);
		
	}
	
});


Но он, почему-то, по истечении 5 секунд, тупо добавляет класс только последнему элементу.

HTML на всякий случай
<div class="mgr">
			<div class="slide 1">Первый слайд</div>
			<div class="slide 2">Второй слайд</div>
			<div class="slide 3">Третий слайд</div>
			<div class="slide 4">Четвертый слайд</div>
			<div class="slide 5">Пятый слайд</div>
		</div>



Помогите грамотно организовать код, пожалуйста!

рони 19.10.2014 18:18

eucalipt,
попробуйте неиспользовать цикл и где снятие active

eucalipt 19.10.2014 18:21

Все будет, но не сразу
 
Снятие active будет потом, мне бы хотя бы сразу с добавлением разобраться.

От цикла отказываться не хочу, ибо самый удобный способ, чтобы не менять код скрипта каждый раз, когда я добавлю или уберу 1 или несколько слайдов. Если у вас есть решения, как это можно организовать без цикла - прошу выдвинуть, буду рад послушать.

рони 19.10.2014 18:29

Цитата:

Сообщение от eucalipt
От цикла отказываться не хочу, ибо самый удобный способ

вы уверены что цикл вам хоть чем-то поможет?
на форуме много примеров того что вы хотите сделать в том числе и про ошибку использовать цикл для вашего слайдера, надо только поискать.

рони 19.10.2014 18:36

eucalipt,
http://javascript.ru/forum/dom-windo...tml#post311887

eucalipt 19.10.2014 18:50

Сейчас, посмотрим, спасибо


Часовой пояс GMT +3, время: 07:44.