Нужно сделать анимацию, чтобы элементы прокручивались влево и появлялись справа (без пустоты, картинки всегда движутся друг за другом)

Для справки. Использую Next.js 13.5.4, React 18, SASS 1.69.7.

Данный скрин сделан при разрешении 1920x1080. При более низких разрешениях пустота пропадает, но анимация все равно разрывается в конце. Либо же не доходит до конца и начинается заново. В общем нужно сделать так, чтоб независимо от разрешения элементы шли друг за другом без огромной пустоты в конце. вот начало движения, он немного раньше конечно начиается, но в начале пустота меня не волнует а вот уже под конец, когда я ожидаю чтоб появился 1й и 2й элемент, их нету, последний элемент доходит почти до-конца значок(nginx) и затем анимация резко начинается с нуля

const Slider = () => {
    return (
        <div className={styles.rootWrapperSlider}>
            {
                icons.map((icons)=>{
                  return   <Image key={icons.item} className={styles.ImageSlider} src={icons.item} />
                })
            }
        </div>
    );
};
@keyframes slide {
  from {
    left: 100%;
  }
  to {
    left: -100%;
  }
}
.rootWrapperSlider {
  background-color: #F8F8F8;
  height: 180px;
  position: absolute;
  width: 100%;
  right: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}
.ImageSlider {
  width: 123px;
  height: 123px;
  margin-left:6%;
  position: relative;
  animation: slide 15s linear infinite;
}

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

Автор решения: Guzel
@keyframes slide {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}

.rootWrapperSlider {
  background-color: #F8F8F8;
  height: 180px;
  position: absolute;
  width: 100%;
  right: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.ImageSlider {
  width: 123px;
  height: 123px;
  margin-left:6%;
  position: relative;
  animation: slide 15s linear infinite;
}

Вместо использования свойств left, лучше использовать transform: translateX() для перемещения элементов, чтобы они перемещались влево и появлялись справа.

→ Ссылка