Помогите написать правильный код
Здравствуйте, делаю что-то на подобии карусели на сайт, только вместо прокручивания, блоки карусели должны медленно исчезать, а на их месте должны появляться другие. У меня уже есть идея, как это можно сделать, только не получается написать правильный код.
Итак, сама идея. Как только проходит определенный промежуток времени, сразу к элементу карусели (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> Помогите грамотно организовать код, пожалуйста! |
eucalipt,
попробуйте неиспользовать цикл и где снятие active |
Все будет, но не сразу
Снятие active будет потом, мне бы хотя бы сразу с добавлением разобраться.
От цикла отказываться не хочу, ибо самый удобный способ, чтобы не менять код скрипта каждый раз, когда я добавлю или уберу 1 или несколько слайдов. Если у вас есть решения, как это можно организовать без цикла - прошу выдвинуть, буду рад послушать. |
Цитата:
на форуме много примеров того что вы хотите сделать в том числе и про ошибку использовать цикл для вашего слайдера, надо только поискать. |
|
Сейчас, посмотрим, спасибо
|
| Часовой пояс GMT +3, время: 05:27. |