Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 29.05.2022
Сообщений: 8

Кнопка закрыть для модального окна

17.06.2023, 09:58. Показов 482. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть вот такое модальное окошко, к которому добавил оверлей, а кнопку закрыть чет не получается прикрутить. Помогите, пожалуйста сделать ее кликабельной.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<div class="accordion-item">
      <div class="accordion-item__trigger">
               <div class="modal__overlay"></div>
                Открыть
       </div>
       <div class="accordion-item__content">
          <div class="modal_close">X</div>
          <div class="modal_content">           
             <h4>Профиль</h4>    
              <p>Текст</p>
           </div>           
     </div>
</div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
.accordion-item {margin-bottom: 20px}
.modal__overlay {
    opacity: 0; visibility: hidden; position: fixed; top: 0; left: 0; cursor: auto; width: 100vw; height: 100vh;
    background: rgb(0,0,0,.4); -webkit-transition: all 0.4s; -moz-transition: all 0.4s; transition: all 0.4s;
}
.modal_close {
    position: absolute; top: 15px; right: 15px; font-size: 4em; color: grey; cursor: pointer; font-family: 'Comic Sans MS'; font-weight: normal;
    transform: rotate(45deg); -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -o-transform: rotate(45deg); -ms-transform: rotate(45deg);
    transition: filter linear .2s;-moz-transition:filter linear .2s;-webkit-transition:filter linear .2s;-o-transition: filter linear .2s;
}
.modal_close:hover {-webkit-filter: brightness(110%)}
.accordion-item__trigger {padding: 20px; border: 1px solid black;}
.accordion-item__content { 
    position: fixed; top: 50%; left: 50%; min-height: 200px; max-height: 90%; width: 90%; max-width: 500px;
    opacity: 0; visibility: hidden; overflow-y: auto; z-index: 3; text-align: center; 
    background: #E3EDE9; box-shadow: 0 0 0 6px rgba(0,0,0,.1); border: 2px solid #666; border-radius: 7px;
    transition: 0.3s all; -webkit-transition: 0.3s all; -moz-transition: 0.3s all; -ms-transition: 0.3s all;
    transform: translate(-50%, -200%); -webkit-transform: translate(-50%, -200%); -moz-transform: translate(-50%, -200%); -ms-transform: translate(-50%, -200%);
}
 
.accordion-item--active .modal__overlay {opacity: 1; visibility: visible;}
.accordion-item--active .accordion-item__trigger {background-color: #ccc;}
.accordion-item--active .accordion-item__content { 
    opacity: 1; visibility: visible;
    transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); -moz-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%);
}
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
document.querySelectorAll('.accordion-item__trigger').forEach((item) =>
    item.addEventListener('click', () => {
    const parent = item.parentNode;
 
    if (parent.classList.contains('accordion-item--active')) {
        parent.classList.remove('accordion-item--active');
    } else {
        document
            .querySelectorAll('.accordion-item')
            .forEach((child) => child.classList.remove('accordion-item--active'))
            
        parent.classList.add('accordion-item--active');
    }
})
)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.06.2023, 09:58
Ответы с готовыми решениями:

Как одним кликом по ссылке внутри модального окна закрыть текущее окно и открыть новое?
Приветствую. Кто знает, подскажите как нажав на ссылку внутри модального окна закрыть текущее окно и запустить открытие нового окна на этой...

Как написать скрипт для скрытия модального окна при клике вне окна(на боди) ?
У меня модальное окно вообще даже не открывается при нажатии на кнопку,потому что у меня так прописано в скрипте ...

Кнопка или ссылка закрытия модального окна
Помогите сделать кнопку или ссылку закрытия модального окна... ВОТ СКРИПТ (function($){ $.fn.extend({ ...

1
Философ-разговорник
 Аватар для Padonak
1066 / 391 / 120
Регистрация: 20.02.2016
Сообщений: 884
Записей в блоге: 1
18.06.2023, 10:30
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title></title>
    <style>
.accordion-item {margin-bottom: 20px}
.modal__overlay {
    opacity: 0; visibility: hidden; position: fixed; top: 0; left: 0; cursor: auto; width: 100vw; height: 100vh;
    background: rgb(0,0,0,.4); -webkit-transition: all 0.4s; -moz-transition: all 0.4s; transition: all 0.4s;
}
.modal_close {
    position: absolute; top: 15px; right: 15px; font-size: 4em; color: grey; cursor: pointer; font-family: 'Comic Sans MS'; font-weight: normal;
    transform: rotate(45deg); -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -o-transform: rotate(45deg); -ms-transform: rotate(45deg);
    transition: filter linear .2s;-moz-transition:filter linear .2s;-webkit-transition:filter linear .2s;-o-transition: filter linear .2s;
}
.modal_close:hover {-webkit-filter: brightness(110%)}
.accordion-item__trigger {padding: 20px; border: 1px solid black;}
.accordion-item__content { 
    position: fixed; top: 50%; left: 50%; min-height: 200px; max-height: 90%; width: 90%; max-width: 500px;
    opacity: 0; visibility: hidden; overflow-y: auto; z-index: 3; text-align: center; 
    background: #E3EDE9; box-shadow: 0 0 0 6px rgba(0,0,0,.1); border: 2px solid #666; border-radius: 7px;
    transition: 0.3s all; -webkit-transition: 0.3s all; -moz-transition: 0.3s all; -ms-transition: 0.3s all;
    transform: translate(-50%, -200%); -webkit-transform: translate(-50%, -200%); -moz-transform: translate(-50%, -200%); -ms-transform: translate(-50%, -200%);
}
 
.accordion-item--active .modal__overlay {opacity: 1; visibility: visible;}
.accordion-item--active .accordion-item__trigger {background-color: #ccc;}
.accordion-item--active .accordion-item__content { 
    opacity: 1; visibility: visible;
    transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); -moz-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%);
}
    </style>
  </head>
  <body>    
    <div class="accordion-item">
      <div class="accordion-item__trigger">
               <div class="modal__overlay"></div>
                Открыть
       </div>
       <div class="accordion-item__content">
          <div class="modal_close">X</div>
          <div class="modal_content">           
             <h4>Профиль 1</h4>    
              <p>Текст 1</p>
           </div>           
     </div>
</div>
<div class="accordion-item">
      <div class="accordion-item__trigger">
               <div class="modal__overlay"></div>
                Открыть
       </div>
       <div class="accordion-item__content">
          <div class="modal_close">X</div>
          <div class="modal_content">           
             <h4>Профиль 2</h4>    
              <p>Текст 2</p>
           </div>           
     </div>
</div>
<div class="accordion-item">
      <div class="accordion-item__trigger">
               <div class="modal__overlay"></div>
                Открыть
       </div>
       <div class="accordion-item__content">
          <div class="modal_close">X</div>
          <div class="modal_content">           
             <h4>Профиль 3</h4>    
              <p>Текст 3</p>
           </div>           
     </div>
</div>
<script>
document.addEventListener('click', e => {
    const trg = e.target;
        if(trg.className.includes('__trigger')) trg.closest('.accordion-item').classList.add('accordion-item--active');
            if(trg.className == 'modal_close') trg.closest('.accordion-item--active').classList.remove('accordion-item--active');
});
</script>
  </body>
</html>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.06.2023, 10:30
Помогаю со студенческими работами здесь

Как задать ширину для модального окна в JS
Вопрос конечно простейший, но я новичок в JS. Хотел было прописать в CSS, но стиль width не применяется, хотя все остальные стили работают....

Какие библиотеки нужно подключить для использования модального окна?
Добрый день Подскажите что нужно подключить для модального окна. Добавляю $modal в контроллер и ошибка ...

Скрипт модального окна! Как сделать закрытие окна через крестик?
var modal = document.getElementById('myModal'); var btn = document.getElementsByClassName(&quot;myBtn&quot;); var span =...

Как сделать задержку модального окна или другой способ для просмотра уведомления после заполнения формы в модальном окне
Доброго времени суток, всем кто зашел))) Помогите пожалуйста с задачей. Есть кнопка &quot;Заказать обратный звонок&quot; &lt;a...

Кнопка для вывода модального окна
Как сделать кнопку для вывода модального окна, сколько гуглил не очень понимаю как и что должно происходить Т.е. при нажатии на кнопку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru