Бесконечная горизонтальная css анимация удаляет начальные отступы - PullRequest
2 голосов
/ 30 марта 2020

Я хочу реализовать бесконечную горизонтальную анимацию. Работает нормально, но начинает выходить за пределы экрана, а затем анимируется - как мне добиться, чтобы начальная позиция уже была внутри экрана, а затем началась?

.marquee {
    margin: 0 auto;
    white-space: nowrap;
    overflow: hidden;
    position: absolute;
}

.marquee span {
    display: inline-block;
    padding-left: 100%;
    animation: marquee 5s linear infinite;
}

.marquee2 span {
    animation-delay: 2.5s;
}

@keyframes marquee {
    0% {
        transform: translate(0, 0);
    }
    100% {
        transform: translate(-100%, 0);
    }
}
<h1 class="marquee">
<span>Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test</span>
</h1>

<h1 class="marquee marquee2">
<span>&nbsp;Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test</span>
</h1>

1 Ответ

1 голос
/ 30 марта 2020

Используйте отрицательную задержку, чтобы анимация начиналась посередине:

.marquee {
  margin: 0 auto;
  white-space: nowrap;
  overflow: hidden;
  position: absolute;
}

.marquee span {
  display: inline-block;
  padding-left: 100%;
  animation: marquee 5s -2.5s linear infinite;
}

.marquee2 span {
  animation-delay: 0s;
}

@keyframes marquee {
  0% {
    transform: translate(0, 0);
  }
  100% {
    transform: translate(-100%, 0);
  }
}
<h1 class="marquee">
  <span>Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test</span>
</h1>

<h1 class="marquee marquee2">
  <span>&nbsp;Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test</span>
</h1>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...