Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как сделать появление блока сразу после появления другого блока, а через 3 секунды бл (https://javascript.ru/forum/misc/80709-kak-sdelat-poyavlenie-bloka-srazu-posle-poyavleniya-drugogo-bloka-cherez-3-sekundy-bl.html)

Lefseq 19.07.2020 09:38

Как сделать появление блока после появления другого, а через 3 сек. блок №2 исчезает?
 
Привет. Есть код, который рандомно выдает зеленые блоки (заменяя серые). Теперь нужно, чтобы при появлении блока "2 зел" вверху страницы появлялся отдельный блок а спустя 3 секунды исчезал. Подскажите как это сделать?

<div class="box-container">
  <div class="block"><div class="num"><a href="https://" style="display:block;">1</a></div><div class="items">1 зел</div></div>
  <div class="block"><div class="num"><a href="https://" style="display:block;">2</a></div><div class="items">2 зел</div></div>
  <div class="block"><div class="num"><a href="https://" style="display:block;">3</a></div><div class="items">3 зел</div></div>
  <div class="block"><div class="num"><a href="https://" style="display:block;">4</a></div><div class="items">4 зел</div></div>
</div>


document.addEventListener( "DOMContentLoaded" , function() {
class RandomFadeIn {
   constructor(cls, delay=1350, pause=300){
   this.parent = document.querySelector(cls);
   this.items = this.parent.children;
   delay = Array.from({length : this.items.length}, (v,k) => delay * k);
   Array.from(this.items).forEach((el,i) => {
             i = delay.length * Math.random()|0;
             i = delay.splice(i, 1)[0];
             el.style.setProperty("--delay", `${i}ms`)
          });
   window.setTimeout(()=> this.parent.classList.add("show"), pause);
   }
}
new RandomFadeIn(".box-container")
  });


.box-container {
  width: 232px;
  display: grid;
  grid-gap: 5px;
  grid-template-columns: repeat(auto-fit, minmax(50px, 1fr));
}
 
.box-container div {
  height: 50px;
  width: 50px;
  text-align: center;
  background-color: hsla(0, 0%, 75%, 1);
  line-height: 50px;
  position: relative;
}
.box-container div .items{
 margin: 0;
 position: absolute;
 left: 0;
 top: 0;
 width: 100%;
 background-color: hsla(167, 100%, 30%, 1);
 display: block;
 opacity: 0;
 z-index: -1;
 transition: 1s var(--delay);
}
.box-container.show div .items{
 opacity: 1;
 z-index: 1;
}


Часовой пояс GMT +3, время: 16:20.