Известно, сколько максимум блоков видно одновременно. Блоки держать в массиве. Вставлять и вынимать их из DOM – в странице присутствуют в любой момент только те 2 блока, что видны.
Можно сделать на JS, но анимация
дергается.
Но лучше
вариант с CSS анимацией. Тут используется две анимации – въезд в кадр, и выезд. По окончании каждой анимации вызывается событие
transitionend. По завершении въезда – пора запускать выезд себя и въезд следующего.