как сделать чтоб блоки сменяли бесконечно друг друга через 3с
подскажите пожалуйста, есть массив объектов, есть функция, создающая блок, нужно сделать бесконечную смену блоков через 3с., у меня они появляются все вместе.
const arrObj = [
{
img: 'img/avatar-1.png',
textUser: 'Здравствуйте!',
textAdmin: 'Привет!',
},
{
img: 'img/avatar-2.png',
textUser: 'Как дела?',
textAdmin: 'Норм',
},
];
function getChat(arr) {
const block = document.createElement('div');
const user = document.createElement('div');
const userImg = document.createElement('img');
userImg.src = arr.img;
const userText = document.createElement('p');
userText.textContent = arr.textUser;
const admin = document.createElement('div');
const adminImg = document.createElement('img');
adminImg.src = 'img/logo.svg';
const adminText = document.createElement('p');
adminText.textContent = arr.textAdmin;
admin.append(adminImg, adminText);
user.append(userImg, userText);
block.append(user, admin);
}
setInterval(() => {
for (let i = 0; i < arrObj.length; i++) {
getBlock(arrObj[i]);
}
}, 3000)
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Думаю как-то так
let i = 0;
let intervalId = setInterval(() => {
getBlock(arrObj[i++]);
if (i === arrObj.length - 1)
clearInterval(intervalId);
}, 3000);
при пустом массиве будет не очень
Тогда:
for (let i = 0; i < arrObj.length; i++) {
setTimeout(() => {
getBlock(arrObj[i]);
}, i * 3000);
}