Как сделать infinite auto adaptive carousel | html + css + javascript?

Создаю свой сайт и хочу сделать так чтобы под текстом, "каруселились" изображения, не знаю как это на русском, но на английском вот так это называется — infinite auto carousel

Я бы хотел сделать это на чистом js без библиотеки slick-slider, но чтобы я не делал, карусель работает некорректно…

Во первых, прерывается цикл.
Как только карусель доходит до последнего изображения, происходит резкий откат назад к первой картинке или же если я использую функцию clone(), то за нормальными изображениями идут маленькие копии, в общем, некрасиво.

Читал что это можно сделать без , только на , но, насколько я понимаю, оно не будет адаптивным ко всем устройствам. Не хочу использовать slick slider так как думаю что повлияет на оптимизацию и скорость сайта ведь для этого необходимо подключать целую библиотеку со стилями к проекту gulp. Вот код js, до которого я дошел:

const slider = document.querySelector('.carousel__slider');
const items = document.querySelectorAll('.carousel__item');

// Duplicate items for infinite scrolling
slider.innerHTML += slider.innerHTML;
items.forEach(item => slider.appendChild(item.cloneNode(true)));

// Reset animation when it reaches the end
slider.addEventListener('animationiteration', () => {
  const firstItem = document.querySelector('.carousel__item:first-child');
  if (firstItem) {
    slider.appendChild(firstItem);
  }
  slider.style.animation = 'none';
  slider.offsetHeight; // Trigger reflow
  slider.style.animation = 'scroll 20s linear infinite';
});

Но он не идеален и есть снова резкий откат


Ответы (0 шт):