Я работаю над очень простой анимацией, когда классы удаляются из элементов списка после их загрузки и добавления в документ. У меня проблема с самой анимацией. Я хочу, чтобы анимация пошагово выполнялась, как показано на рисунке ниже ...
Что на самом деле означает, что цикл выполняется полностью, сообщения console.log выводятся поэтапно, но все классы удаляются одновременно после завершения цикла. Как я могу изменить это поведение? Зачем добавлять сообщения console.log, но функциональность classList.remove не выполняется одновременно?
Вот мой код ...
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
/**/
function showListItems() {
var listItems = document.querySelector('.idList');
var n = 20;
var c = 0;
var itemArray = new Array();
for (var i = 0; i < listItems.children.length; i++) {
var item = listItems.children[i];
if (item.classList && item.classList.contains('idList__item--hide')) {
console.log('Item: ', item);
itemArray[c] = item;
c++;
}
}
console.log('Item Array: ', itemArray);
itemArray.forEach(function(el, index) {
sleep(n);
el.classList.remove('idList__item--hide');
console.log("EL[" + index + "]: ", el);
});
}
Я понимаю, что этот код может показаться сложным, и, возможно, так оно и есть, но я попробовал все, что мог придумать. Я попытался использовать обещания для циклов, теперь метод forEach.
Спасибо.