Назначение innerHTML+=
воссоздает все предыдущие элементы в элементе контейнера, это означает, что ваши ссылки на другие элементы progress
больше не соответствуют фактическим элементам, которые создает это назначение.
Вы должны добавитьновый элемент прогресса, подобный этому:
function createProgress() {
const el = document.createElement("progress");
el.setAttribute("data-progress", progressCount);
el.setAttribute("value", 0);
el.setAttribute("max", 100);
container.appendChild(el);
return el;
}
Как прокомментировал Макюу ниже, количество шагов для отдельных элементов прогресса выполняется только при запуске их анимации.Это означает, что если вы измените входное значение, оно будет применено также к ранее созданным элементам (когда они еще не начали анимацию).
Если предполагается использовать количество шагов, как они были указаны в момент создания элемента , затем измените две строки в вашем коде:
queue.push([getSeconds(), el]);
и:
animateProgress(...queue.shift());