Link Search Menu Expand Document
29 Октября 2022 г.

Модальное окно

Содержание

Просто для того, чтобы понять как это сделано внутри

<style>
    .modal-overlay {
        position: fixed;
        left: 0;
        top: 0;
        right: 0;
        bottom: 0;
        background-color: rgba(0,0,0, 0.4);
        display: flex;
        align-items: center;
        justify-content: center;
        height: 100vh;
        width: 100%;
        opacity: 0;
        visibility: hidden;
    }

    .modal {
        background-color: #ffffff;
        width: 300px;
        height: 300px;
        align-items: center;
        justify-content: center;
        display: none;
    }

    .modal-overlay--visible {
        opacity: 1;
        visibility: visible;
        transition: all 0.3s ease-in-out;
    }

    .modal--visible {
        display: block;
    }

</style>
<button class="button modal-button-1">Модальное окно 1</button>
<button class="button modal-button-2">Модальное окно 2</button>
<button class="button modal-button-3">Модальное окно 3</button>


<div class="modals">
  <div class="modal-overlay">
    <div class="modal modal--1 modal-button-1">Модальное окно 1</div>
    <div class="modal modal--2 modal-button-2">Модальное окно 2</div>
    <div class="modal modal--3 modal-button-3">Модальное окно 3</div>
  </div>
</div>
const buttons = document.querySelectorAll('.button');
  const modalOverlay = document.querySelector('.modal-overlay');
  const modals = document.querySelectorAll(".modal");

  for (let node of buttons) {
    node.addEventListener('click', function (event) {
      let modalButtonClass = event.currentTarget.classList[1];

      for (let modal of modals) {
        modal.classList.remove('modal--visible')
      }

      document.querySelector(".modal-overlay > ." + modalButtonClass).classList.add('modal--visible');
      modalOverlay.classList.add('modal-overlay--visible');
    })
  }

  modalOverlay.addEventListener('click', function (e) {
    modalOverlay.classList.remove('modal-overlay--visible');
    for (let modal of modals) {
      modal.classList.remove('modal--visible')
    }
  })

Возник вопрос или предложение пиши на почту alexsey_89@bk.ru или в Телеграмм канал

Дата публикации: 29 Октября 2022 г.

Содержание


Наверх

Последнее изменение страницы: 29 Октября 2022 г.