Для реализации такой функциональности можно использовать setInterval() для автоматической смены блоков каждые 3 секунды. Также, для того чтобы блоки появлялись поочередно, можно использовать индекс текущего блока из массива объектов.
Пример кода:
```html
<!DOCTYPE html>
<html>
<head>
<title>Автоматическая смена блоков</title>
</head>
<body>
<div id="blocksContainer">
<div class="block" style="display: none;">Блок 1</div>
<div class="block" style="display: none;">Блок 2</div>
<div class="block" style="display: none;">Блок 3</div>
</div>
<script>
const blocks = document.querySelectorAll('.block');
let currentBlockIndex = 0;
function showNextBlock() {
blocks.forEach(block => {
block.style.display = 'none';
});
if (currentBlockIndex === blocks.length) {
currentBlockIndex = 0;
}
blocks[currentBlockIndex].style.display = 'block';
currentBlockIndex++;
}
showNextBlock(); // Показать первый блок сразу
setInterval(showNextBlock, 3000); // Смена блоков каждые 3 секунды
</script>
</body>
</html>
```
В этом примере блоки появляются поочередно из массива объектов с интервалом в 3 секунды. Первый блок отображается сразу после загрузки страницы.