Как сделать чтоб блоки сменяли бесконечно друг друга через 3с?

Для того чтобы реализовать бесконечную смену блоков через определенный интервал времени, можно использовать JavaScript вместе с HTML и CSS. Для начала создадим несколько блоков в HTML, которые будем сменять между собой:

<div id="block1" class="block active">Block 1</div>
<div id="block2" class="block">Block 2</div>
<div id="block3" class="block">Block 3</div>

Затем добавим стили для этих блоков в CSS:

.block {
  display: none;
}

.active {
  display: block;
}

Теперь приступим к самому JavaScript. Нам понадобится использовать функцию setInterval(), которая будет вызывать функцию для смены блоков через каждые 3 секунды. Переключение блоков можно осуществить путем добавления и удаления класса active.

let currentBlock = 1;

setInterval(() => {
  document.getElementById('block' + currentBlock).classList.remove('active');
  
  currentBlock = currentBlock % 3 + 1;
  
  document.getElementById('block' + currentBlock).classList.add('active');
}, 3000);

Этот код будет переключать блоки каждые 3 секунды, начиная с первого блока, затем на второй и третий, и затем снова на первый, обеспечивая таким образом бесконечную смену блоков.

Поместите весь этот код внутрь <script> элемента в вашем HTML документе, и вы увидите блоки, которые будут сменять друг друга через каждые 3 секунды.