2017-01-16 2 views
0

У меня есть текст с автопрокруткой, проблема в том, что перезапуск анимации перед завершением div.Ошибка автопрокрутки анимации CSS

Вы можете посмотреть здесь: https://jsfiddle.net/2oLf47o9/2/

Здесь анимация часть

-webkit-animation-name: move; 
-webkit-animation-duration: 5s; 
-webkit-animation-iteration-count: infinite; 
-webkit-animation-direction: up; 
-webkit-animation-timing-function: linear; 

Я хочу письма прокрутить до «Z» и перезапустить снова от «А». Как я могу это сделать?

ответ

0

Вам просто нужно увеличить высоту поля, которую ожидает анимация, когда она будет на 100% завершена. В этом случае CSS, который устанавливает, что это:

@-webkit-keyframes move { 
    0% { /* Start of the animation */ 
     margin-top: 100vh; 
    } 
    100% { /* End of the animation */ 
     margin-top: -100vh; 
    } 
} 

Таким образом, вы просто должны изменить запас 100% вариант анимации ожидает нечто более высокое (и с тем, как VH единицы работы это означает, что установка значения ниже), -200vh работал красиво, когда я тестировал этот пример.

Измененный код будет:

100% { /* End of the animation */ 
    margin-top: -200vh; 
} 
+0

Благодаря @CallumErrington, который работает Nicey но что, если я хочу анимации до конца, когда именно последнее письмо прошло в верхней части браузера? Это выполнимо в чистом CSS? – Federico

+0

@Federico Это просто вопрос, связанный со значениями анимации. Итак, если вы делаете то, что сказал @ GL.awog, так как это кажется лучшим способом сделать это и попробовать '0% {transform: translateY (50%); } ', чтобы избавиться от задержки. – Callum

1

в этом случае лучше использовать преобразование: переводить вместо маржинального-топа, так как первое относится к ограничивающему параллелепипеду мишени (#box), а последний - размер контейнера.

@-webkit-keyframes move { 
    0% { 
     transform:translateY(100%); 
    } 
    100% { 
     transform:translateY(-100%); 
    } 
} 

demo

и версия без "задержки между итерациями"

demo2

+0

спасибо, что он отлично работает! Почему при перезагрузке происходит задержка? Есть ли что-нибудь, что я могу сделать, чтобы сделать перезапуск быстрее? – Federico

+0

https://jsfiddle.net/2oLf47o9/16/ Я вернул margin-top как начальное статическое значение –