Один замечательный парень только что помог мне, поэтому есть неверное условие
if(this.frame>elements.length)
он сбрасывает значение 'frame', когда текущее значение больше, чем количество элементов в массиве, но с учетомтот факт, что индексация элементов начинается с 0, когда frame равен elements.length - значение становится неопределенным, поэтому значение frame не уменьшается.
Итак, нам нужно изменить условие на сравнение == или сделать это> =;Спасибо пользователю: 186999 за решение