43 - 46 строка.
Мне хочется плакать, ну или злобно юморить
тыц
>> Проблема сейчас в том, что анимация по советам была сделана через requestAnimationFrame
Это утверждение не верно.
У тебя с определенными интервалами (43 строка) создаются задания т.е. функции которые должны быть вызваны при следующей отрисовке фрэйма.
Пока таких заданий(функций) на отрисовку 20-150 браузер успевает их выполнить каждый кадр. а когда становится около тысячи появляются заметные подтормаживания. Для анимирования достаточно будет только одного вызова анимирующей функции для каждого кадра.
Такие анимации гораздо лучше делать через CSS анимации. А со стороны JS просто изменять классы у элемента страницы для ускорения или замедления.
Древний примерчик использования
requestAnimationFrame