Как использовать setInterval для скрытия/показа div?

153
31 октября 2018, 16:00

как сделать через setInterval так что-бы один .div исчезал (например через 5 секунд) и по исчезновению первого .div появился второй .div ну и т.д.

Answer 1

console.info('Скрипт начнёт работать через 5 секунд'); 
 
var hideOne = setInterval(function(){ 
  $('.one').hide(function(){ 
    clearInterval(hideOne); // От повторного запуска 
     
    console.info('Красный блок исчез, через 5 секунд появится синий блок'); 
    var showTwo = setInterval(function(){ 
      clearInterval(showTwo); 
      $('.two').show(); 
    },1000*5); // 5 sec 
  }); 
},1000*5); // 5 sec
.one, 
.two { 
  display: block; 
  width: 30px; 
  height: 30px; 
} 
 
.one { 
  background: red; 
} 
 
.two { 
  background: blue; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div class="one"></div> 
<div class="two" style="display: none;"></div>

Answer 2

как сделать через setInterval так что-бы один .div исчезал (например через 5 секунд) и по исчезновению первого .div появился второй .div ну и т.д.

Вот так можно сделать, на JS:

// Все квадраты 
var boxes = document.querySelectorAll('.box') 
// Счетчик 
var i = 0; 
// Module 
var mod = boxes.length 
// Интервал в 5 сек 
setInterval(() => { 
  boxes[i % mod].classList.toggle('hide'); 
  boxes[++i % mod].classList.toggle('hide'); 
}, 5000);
.one, 
.two, 
.three { 
  display: block; 
  width: 30px; 
  height: 30px; 
} 
 
.one { 
  background: red; 
} 
 
.two { 
  background: blue; 
} 
 
.three { 
  background: orange; 
} 
 
.hide { 
  display: none; 
}
<div class="box one "></div> 
<div class="box two hide"></div> 
<div class="box three hide"></div>

READ ALSO
Предотвратить click()

Предотвратить click()

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

124
Проверка classList.contains

Проверка classList.contains

Есть div'ыПри нажатии на них добавляется class="clicked"

193