Индивидуальный макет карусели совы

Я хочу создать собственный макет/слайд с помощью Owl Carousel, но не знаю, как это сделать.

Вот слайдер, которого я пытаюсь достичь:слайдер, которого я пытаюсь достичь А это слайд, который мне пока удалось: слайд, который у меня есть

Как видите, есть некоторые проблемы. Изображения перекрываются, и я не могу добавить поля между ними.

HTML:

<div class = "section-padding">
    <div class = "screenshot_slider owl-carousel owl-theme">
        <div class = "item">
            <img src = "SomeImage.jpg" alt = "">
        </div>
        <div class = "item">
            <img src = "SomeImage.jpg" alt = "">
        </div>
        <div class = "item">
            <img src = "SomeImage.jpg" alt = "">
        </div>
        <div class = "item">
            <img src = "SomeImage.jpg" alt = "">
        </div>
        <div class = "item">
            <img src = "SomeImage.jpg" alt = "">
        </div>
        <div class = "item">
            <img src = "SomeImage.jpg" alt = "">
        </div>
        <div class = "item">
            <img src = "SomeImage.jpg" alt = "">
        </div>
    </div>
</div>

CSS-код:

.section-padding {
  padding: 80px 0;
}

.owl-item .item {
  transform: translate3d(0, 0, 0); /* DO NOT REMEMBER WHERE TU PUT THIS, SEARCH FOR 3D ACCELERATION */
  // transition: all .25s ease-in-out;
  margin: 50px 0; /* OVERWRITE PLUGIN MARGIN */
}

.screenshot_slider .owl-item .item img {
  box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.1);
  transition: 0.3s;
  transform: scale(0.8);
}

// .screenshot_slider .owl-item.center{
//   margin-left: 90px;
//   margin-right: 90px;
// }

.screenshot_slider .owl-item.center .item img {
  transform: scale(1.3);
}

/* Adjacent siblings to the center item */
.screenshot_slider .owl-item:has(+ .owl-item.active.center) .item img, /* Previous sibling */
.screenshot_slider .owl-item.active.center + .owl-item .item img {
  /* Next sibling */
  transform: scale(1.1);
}

.screenshot_slider .owl-nav {
  text-align: center;
  // margin: 40px 0;
}

.screenshot_slider .owl-item:last-child { /* Remove margin from last item */
  margin-right: 0; 
}

.screenshot_slider .owl-nav button {
  font-size: 24px !important;
  margin: 10px;
  color: #033aff !important;
}

js: добавлена ​​переменная stagePadding, чтобы изображения находились по краям (слева и справа) и были видны только наполовину. В противном случае они видны полностью.

$('.screenshot_slider').owlCarousel({
        center: true,
        loop:true,
        margin:10,
        dots: false,
        stagePadding: 200,
        responsive: {
            0: {
                items: 1
            },
            600: {
                items: 3
            },
            1200: {
                items: 3
            }
        }
    });

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

Death-is-the-real-truth 22.05.2024 14:28

Кстати, мне кажется, все в порядке: jsfiddle.net/fmzqykbo

Death-is-the-real-truth 22.05.2024 14:34

@Death-is-the-real-truth, проблема в том, что увеличен только первый элемент, а промежутки между ними не одинаковы. в любом случае исправил это с помощью CSS в ответе ниже

yads nasx 22.05.2024 14:39
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
3
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

нашел почти тот пример, который хотел

использовал приведенный выше код в качестве ссылки и отредактировал его в соответствии с моим макетом: CSS:

.carousel_2 .owl-item:has(+ .owl-item.active.center) {
    /* Previous sibling */
    height: 550px;
    align-self: flex-start;
    margin-top: 0;
  }
  .carousel_2 .owl-item.active.center + .owl-item {
    /* Next sibling */
    height: 550px;
    align-self: flex-start;
    margin-top: 0;
  }

  .carousel_2 .active.center {
    height: 850px;
    align-self: center;
    margin-top: 0;
  }

  .owl-carousel .owl-item {
    height: 450px;
    align-self: flex-start;
    margin-top: 50px;
  }

html(лезвие)

<div class = "owl-carousel owl-theme carousel_2">
        @foreach(range(1, 5) as $_)
        <span>
            <img class = "item" data-dots = "1" src = "https://rb.gy/9hjl1d" alt = "">
            <div class = "text-center">
                <h3>TITLE HERE</h3>
                <div class = "primary-text fw-bold">850 $</div>
            </div>
        </span>
        @endforeach
    </div>

добавлен простой цикл, позволяющий сократить объем HTML, который мне пришлось писать ДжС:

$('.carousel_2').owlCarousel({
    loop: false,
    margin: 40,
    center: true,
    dots: false,
    startPosition: 1,
    responsive: {
      0: {
        items: 1,
      },
      600: {
        items: 1,
      },
      1000: {
        items: 2,
      },
      1200: {
        items: 4,
      },
    },
  });

Другие вопросы по теме