Отображение скрытого блока из карусели
Всем доброго времени суток.
Пробую реализовать отображение скрытых блоков при нажатии на элемент карусели. Карусель зацикленная и проблема в том, что на повторной прокрутке карусели, или когда листаешь назад, скрытые блоки не отображаются. Причина, как я понимаю, в том, что в зацикленной карусели уже прокрученные элементы удаляются, а в начало уже встают как бы новые. Возможно, поэтому мой скрипт отображения/скрытия их не видит. Не могу решить проблему. Если ваш стиль помощи - наводки и подсказки, пусть они будут максимально прозрачными:) Буду благодарен за помощь. Скрытый блок <div id='container'> <div id="d1" class="up"> <div id="close" class="scroll-up">Сверунть</div> </div> <div id="d2" class="up"> <div id="close" class="scroll-up">Свернуть</div> </div> <div id="dn" class="up"> <div id="close" class="scroll-up"></div> </div> Карусель <ul id='spisok'> <li data-id='1'> <div class="b-carousel-block" > <img src="" alt="image-carusel" /> </div> </li> <li data-id='2'> <div class="b-carousel-block" > <img src="" alt="image-carusel" /> </div> ... <li data-id='n'> <div class="b-carousel-block"> <img src="" alt="image-carusel" /> </div> </li> </ul> JS карусели $(document).ready(function(){ $(".b-carousel-button-right").click(function(){ $(".h-carousel-items").animate({left: "-242px"}, 200); setTimeout(function () { $(".h-carousel-items .b-carousel-block").eq(0).clone().appendTo(".h-carousel-items"); $(".h-carousel-items .b-carousel-block").eq(0).remove(); $(".h-carousel-items").css({"left":"0px"}); }, 300); }); $(".b-carousel-button-left").click(function(){ $(".h-carousel-items .b-carousel-block").eq(-1).clone().prependTo(".h-carousel-items"); $(".h-carousel-items").css({"left":"-242px"}); $(".h-carousel-items").animate({left: "0px"}, 200); $(".h-carousel-items .b-carousel-block").eq(-1).remove(); }); }); JS скрытого блока $(document).ready(function (){ $('#spisok > li').click(function (){ $('#container > div').hide(); var i=$(this).data('id'); $('#d'+i).slideDown(); }); $(".scroll-up").click(function () { $('#container > div').slideUp(); }) }); |
А где вживую увидеть можно?
|
|
Kasper28,
список li пуст кликать неначего $('#spisok > li') == <ul id="spisok"> <li data-id="1"> </li> <li data-id="2"> </li> <li data-id="3"> </li> <li data-id="4"> </li> <li data-id="5"> </li> <li data-id="6"> </li> <li data-id="7"> </li> </ul> ну и так на всякий <div class="scroll-up" id="close">Сверунть<img src="http://dmitriy.pro/wp-content/themes/dima/img/scroll2.png"></div> |
Цитата:
|
Kasper28,
это первый скрипт $(document).ready(function(){ $(".b-carousel-button-right").click(function(){ // при клике на правую кнопку запускаем следующую функцию: $(".h-carousel-items").animate({left: "-242px"}, 200, function () { // устанавливаем задержку времени перед выполнением следующих функций. Задержка нужна, т.к. эти ффункции должны запуститься только после завершения анимации. var first = $("#spisok li:first"); first.clone().appendTo("#spisok"); // выбираем первый элемент, создаём его копию и помещаем в конец карусели first.remove(); // удаляем первый элемент карусели $(".h-carousel-items").css({"left":"0px"}); // возвращаем исходное смещение набора набора элементов карусели }); // производим анимацию: блок с набором картинок уедет влево на 230 пикселя (это ширина одного прокручиваемого элемента) за 200 милисекунд. }); $(".b-carousel-button-left").click(function(){ // при клике на левую кнопку выполняем следующую функцию: var last = $("#spisok li:last"); last.clone().prependTo("#spisok"); // выбираем последний элемент набора, создаём его копию и помещаем в начало набора $(".h-carousel-items").css({"left":"-242px"}); // устанавливаем смещение набора -222px $(".h-carousel-items").animate({left: "0px"}, 200); // за 200 милисекунд набор элементов плавно переместится в исходную нулевую точку last.remove(); // выбираем последний элемент карусели и удаляем его }); }); это второй $(document).ready(function (){ $('#spisok').on('click', 'li', function (){ var i=$(this).data('id'); $('#container > div').not($('#d'+i)).hide(); $('#d'+i).slideDown(); }); $(".scroll-up").click(function () { $('#container > div').slideUp(); }) }); поменяйте Цитата:
если удалили но ничего невернули по какому месту кликнуть чтоб это $('#spisok > li').click произошло? |
Помогло. Спасибо вам большое! Сейчас буду вникать в исправление
|
Часовой пояс GMT +3, время: 16:29. |