Это вторая попытка, теперь покороче, но остается надежда что есть научный способ, функция, а не функционал.
Надо чтобы анимация дойдя до последней картинки пошла вспять. То есть 1 2 3 4 3 2 1 2 3 4... и так далее.
Перематывать с конца до начала портянку в несколько экранов - полная лажа, поэтому хочу сделать туда-сюда.
Код (основная часть). Подвижный элемент - m
total=items.length,
max=total-1,
curr=0,
step=500,
to,
delay=3000,
move=function(c){
m.style.top=(-c*step)+'px';
},
move_n=function(e){
if(curr<max)
move(++curr);
if(curr>=max)
f=move_p;
},
move_p=function(e){
if(curr>0)
move(--curr);
if(curr<=0)
f=move_n;
},
go=function(e){
to=W.setTimeout(f,delay);
},
f=move_n;
m.addEventListener('transitionend',go);
go();
Суть как видите такова: я заменяю функцию в зависимости от достижений. Иначе никак не получается, или получаются несусветные проверки и куча лишних переменных.
Есть более научный способ?