Я как то раз столкнулся с такой проблемой. Но решилось довольно таки просто - дизайнеру настучали по голове =) И перерисовал нормально.
Не пробовал, просто есть мысль закостылить так: задать body { padding-bottom: 150px;} а футер абсолютно отпозиционировать вниз. Не знаю что получится, но попробуйте.
Первый вариант - пинать дизайнера.
Второй вариант - использовать стилизованный скролл для прокрутки информации, но при этом находиться в этом же блоке.
P. S. очень грамотно сформулированный вопрос в теме =)) Ощущение будто у вас удивление, а не проблема =)
Создаёте функцию в которой делаете анимацию. Элементы верстаете каким то списком. А по загрузке делаете перебор элементов в списке и для каждого из них по цепочке вызываете данную функцию.