Ответы пользователя по тегу Слайдер
  • Как сделать JS/CSS слайдер с использованием flex элементов?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    как-то так
    Ответ написан
    4 комментария
  • Как сделать вот такой slider?

    delphinpro
    @delphinpro
    frontend developer
    Пишем кастомный слайдер. Нафиг не нужен здесь готовый.

    Все слайды размещаем "стопкой" с помощью грид-раскладки (можно абсолютом, но это хуже)
    Внутри слайда располагаемдва блока - текст и картинка. Текст невидимый, картинка за пределами слайда, в том сотоянии, из которого она будет выходит в состояние маленького размера справа. Блокам с текстом и картинкой задаем свойства плавного перехода (transition).
    Наверху "бутерброда" слой с кнопками управления.

    Дальше определяем три состояния картинки.

    Первое уже определено - это невидимый слайд, текст скрыт (opacity:0), картинка за пределами не видна.

    Второе состояние - "следующий слайд". Здесь текст все еще не виден, а картинка маленькая.

    Третье состояние - "активный слайд". Здесь текст виден и и картинка большая в центре.

    А дальше самое простое – по кликам на кнопки управления нужно просто менять состояния слайдов с помощью навешивания и убирания у них css классов.
    Ответ написан
    Комментировать
  • Как сделать чтобы slic слайдер подгружался готовым узлом DOM?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    ну как вариант

    .slick-slider:not(.slick-initialized) {
      opacity: 0;
    }
    Ответ написан
    1 комментарий
  • Как "развернуть" массивы обратно?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    next() {
      this.currentIndex++;
      if (this.currentIndex >= this.slides.length)  {
        this.currentIndex = 0; // После последнего переходим на первый
      }
      // … дальше манипуляции со слайдами
    }
    previous() {
      this.currentIndex--;
      if (this.currentIndex < 0)  {
        // После первого переходим на последний (в обратном направлении)
        this.currentIndex = this.slides.length - 1; 
      }
      // … дальше манипуляции со слайдами
    }
    Ответ написан
    Комментировать
  • Как сделать бесконечную карусель(слайдер)?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Когда нужно перекрутить на первый слайд, клонируем его, добавляем в конец. Когда клон уходит из области видимости – удаляем.
    Ответ написан
  • Как указать фиксировано-адаптивную высоту блока?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Метод, предложенный SmthTo, хорош, когда все слайды одинаковые.
    Если слайды с разным кол-вом высоты и автоподстройкой высоты при смене слайда, он не подойдёт.

    Добавлю еще один, который использую я.

    Он примитивен: просто прописываем высоту обертке для не инициализированного слайдера:

    .myslider:not(.owl-loaded) {
      height: 300px;
      overflow-y: scroll;
    }


    Разщумеется, таким образом не получиться точно указать нужную высоту (или придется сильно заморочиться), но этого в общем-то и не нужно. Когда высота меняется всего на несколько пикселей после инициализации, это практически не заметно.
    Ответ написан
  • Как реализовать слайдер с двумя рядами и превью?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    5c20f54e558e3044251378.png
    вот это слайдер (slick 2x2)
    А картинка справа - отдельная превьюшка.
    превью меняем по клику на слайд и по событию смены слайдов.
    стрелки выносим отдельным кодом и подключаем к слику.

    ну и заморочки с двумя слайдерами лишнее. Просто меняем картинку и всё. ну максимум можно заморочится с fade-анимацией на картинке (плавно скрыть, удалить, создать новую, плавно показать.)
    Ответ написан
    3 комментария
  • Как сделать бесконечную прокрутку карусели (чистый JS)?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Режим loop реализуется клонированными элементами.
    Последние несколько элементов клонируются и размещаются вначале списка слайдов. При каждой перемотке слайды с одной стороны переносятся на другую, создавая в области просмотра видимость бесконечности.
    Посмотреть можно, открыв демку любого слайдера и заглянув в инспектор попереключать слайды.
    Ответ написан
  • Как привязать стрелочки к конкретному слайдеру в Slick Slider?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Читаем документацию, видим, что nextArrow может принимать string (html | jQuery selector) | object (DOM node | jQuery object)
    Чуть-чуть думаем, и понимаем, что мы можем передать сюда любой jquery-объект со страницы. Осталось только выбрать нужный.
    Кнопочки обычно недалеко от слайдера, значит их легко найти через общего родителя.
    Ну и всё. Осталось только наговнокодить.
    Примерно так:

    $('[data-carousel]').each((index, el) => {
      const $carousel = $(el);
      let what        = $carousel.data('carousel');
    
      if (!carouselConfig.hasOwnProperty(what)) return;
    
      let $arrows = $carousel.parents('.carousel-wrapper').find('.arrows').children();
    
      $carousel.slick({
        arrows   : true,
        infinite : true,
        prevArrow: $arrows.filter('.arrows__prev'),
        nextArrow: $arrows.filter('.arrows__next'),
        ...carouselConfig[what],
      });
    });
    Ответ написан
    3 комментария