Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.07.2020, 09:38
Кандидат Javascript-наук
Отправить личное сообщение для Lefseq Посмотреть профиль Найти все сообщения от Lefseq
 
Регистрация: 19.04.2019
Сообщений: 124

Как сделать появление блока после появления другого, а через 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;
}

Последний раз редактировалось Lefseq, 19.07.2020 в 09:45.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Модальное окно бутсрап само закрывается через доли секунды после открытия alexmixaylov jQuery 0 02.06.2016 13:46
Как сделать подрузку <div> через ajax? Feniks000 jQuery 1 11.02.2014 09:44
как сделать что бы при открытии страницы сразу открылось большое фото oksanaweb Общие вопросы Javascript 1 05.06.2013 02:17
Как сделать меню сразу отурытым. vdiapazone Events/DOM/Window 0 22.11.2011 12:24
Как получить размер блока сразу после изменения его содержимого? Cooskon Events/DOM/Window 6 17.09.2010 16:15