За последние 24 часа нас посетили 18588 программистов и 1687 роботов. Сейчас ищут 1644 программиста ...

Cлайдшоу на jquery

Тема в разделе "JavaScript и AJAX", создана пользователем riaron, 13 мар 2017.

  1. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
    Темизирую сайт на друпал не могу подобрать алгоритм для слайд-шоу на jquery.
    Так чтобы картинки(их по 4 в каждом артикле) по очереди показывались через 5 секунд так:
    С начала первая занимает 75% <div>-а а остальные размером в высоту 25% и 25% в ширину справа потом вторая в 75%X75% остальные по 25% справа и т.д.
    Вот код для каждого артикля
    HTML:
    1. <div class="field__item">
    2.     <div class="field__item">
    3.         <img class="myphoto" src="/dfgh/ertyhjk1.jpg">
    4.     </div>
    5.     <div class="field__item">
    6.         <img class="myphoto" src="/dfgh/ertyhjk2.jpg">
    7.     </div>
    8.     <div class="field__item">
    9.         <img class="myphoto" src="/dfgh/ertyhjk3.jpg">
    10.     </div>
    11.     <div class="field__item">
    12.         <img class="myphoto" src="/dfgh/ertyhjk4.jpg">
    13.     </div>
    14. </div>
    С начала создал 5 стилей(создал 5 для разных экспериментов) один из них увеличивает картинку остальные одинаковые и делают картинку 25 на 25(). Потом добавил классы для каждой <img> и <div>-ов с первого по четвертый на каждого.
    Далее для первого шага слайд-шоу(увеличить первую картинку) сделать все просто. А для второго шага столкнулся с проблемой перемещения каждых первых элементов после каждых вторых.
    Код (Javascript):
    1. (function ($, Drupal) {
    2.  
    3.   'use strict';
    4. //Стилизация изображения
    5.     $("img.image-style-my-style-350x250-").parents("div.field__item").addClass('photo-parent');
    6.     $(".photo-parent:nth-child(4n-3)").addClass('one');
    7.     $("div.one img.image-style-my-style-350x250-").addClass("firsti");
    8.     $(".photo-parent:nth-child(4n-2)").addClass('two');
    9.     $("div.two img.image-style-my-style-350x250-").addClass("secondi");
    10.     $(".photo-parent:nth-child(4n-1)").addClass('three');
    11.     $("div.three img.image-style-my-style-350x250-").addClass("thirdi");
    12.     $(".photo-parent:nth-child(4n)").addClass('four');
    13.     $("div.four img.image-style-my-style-350x250-").addClass("fourthi");
    14.  
    15.  
    16. //слайд-шоу
    17. var i=1;
    18.     setInterval(function(){
    19.         if(i==1){
    20.             $("div.one img").toggleClass("firsti bigg");
    21.      
    22.         }else if(i==2){
    23.                 $(".photo-parent:nth-child(4n-3)").insertAfter($(".photo-parent:nth-child(4n-3)").next());
    24.             $("div.one img").toggleClass("firsti bigg");
    25.             $("div.two img").toggleClass("secondi bigg");
    26.         }
    27.         i++;
    28.         if(i>4){
    29.             i=1;
    30.         }
    31.     },5000);
    32. })(jQuery, Drupal);
    Как можно переместить каждый первый после каждого второго
     
  2. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
    Проблема решена.
     
    denis01 нравится это.