Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Вызов готового модального окна из JS (https://javascript.ru/forum/events/77441-vyzov-gotovogo-modalnogo-okna-iz-js.html)

berkut_0 05.05.2019 08:50

Вызов готового модального окна из JS
 
Здравствуйте.
У меня есть модальное окно, реализация HTML+CSS. Взял здесь.
Как можно это окно вызывать (и закрывать) при помощи JS ?

рони 05.05.2019 10:52

модальное окно
 
berkut_0,
<!DOCTYPE html>
<html>
<head>
    <title>Создаем модальное окно на HTML5 и CSS3</title>
    <meta charset="utf-8">

    <style>
    .modalDialog {
        position: fixed;
        font-family: Arial, Helvetica, sans-serif;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        background: rgba(0,0,0,0.8);
        z-index: 99999;
        -webkit-transition: opacity 400ms ease-in;
        -moz-transition: opacity 400ms ease-in;
        transition: opacity 400ms ease-in;
        display: none;
        pointer-events: none;
    }

    .modalDialog:target {
        display: block;
        pointer-events: auto;
    }

    .modalDialog > div {
        width: 400px;
        position: relative;
        margin: 10% auto;
        padding: 5px 20px 13px 20px;
        border-radius: 10px;
        background: #fff;
        background: -moz-linear-gradient(#fff, #999);
        background: -webkit-linear-gradient(#fff, #999);
        background: -o-linear-gradient(#fff, #999);
    }

    .close {
        background: #606061;
        color: #FFFFFF;
        line-height: 25px;
        position: absolute;
        right: -12px;
        text-align: center;
        top: -10px;
        width: 24px;
        text-decoration: none;
        font-weight: bold;
        -webkit-border-radius: 12px;
        -moz-border-radius: 12px;
        border-radius: 12px;
        -moz-box-shadow: 1px 1px 3px #000;
        -webkit-box-shadow: 1px 1px 3px #000;
        box-shadow: 1px 1px 3px #000;
    }

    .close:hover { background: #00d9ff; }
    </style>
</head>

<body>

<a href="#openModal">Открыть модальное окно</a>

<div id="openModal" class="modalDialog">
    <div>
        <a href="#close" title="Закрыть" class="close">X</a>
        <h2>Модальное окно</h2>
        <p>Прмер простого модального окна, которое может быть создано с использованием CSS3.</p>
        <p>Его можно использовать в широком диапазоне, начиная от вывода сообщений и заканчивая формой регистрации.</p>
    </div>
</div>
<script>
   window.location.hash = "#openModal";
   window.setTimeout(()=> window.location.hash = "#close", 2000)
</script>
</body>
</html>

berkut_0 05.05.2019 16:51

Цитата:

Сообщение от рони (Сообщение 507398)
berkut_0,
<script>
window.location.hash = "#openModal";
window.setTimeout(()=> window.location.hash = "#close", 2000)
</script>

Пасиба, проверил - работает.
Только вот мне кажется, что две секунды на закрытие - это довольно таки дофига =)
Поставил ноль

рони 05.05.2019 17:45

Цитата:

Сообщение от berkut_0
две секунды на закрытие

:blink:
до закрытия!!!
для закрытия сразу таймер не нужен!!!

berkut_0 05.05.2019 18:02

Цитата:

Сообщение от рони (Сообщение 507403)
до закрытия!!!

Ну это понятно. Вообще, много кто и много где употребляют по сути неверные деепричастия и междометия, суть от этого не особо меняется. Главное - что бы люди понимали друг друга. И вроде как, мы друг друга поняли =)
Цитата:

Сообщение от рони (Сообщение 507403)
для закрытия сразу таймер не нужен!!!

getElement.click() ?

P. S. Для пользователя "на закрытие" и "до закрытия" - это одно и то же. Иногда приходится ещё мыслить как пользователь :)

рони 05.05.2019 18:34

Цитата:

Сообщение от berkut_0
getElement.click() ?

:-?
window.location.hash = "#close";

berkut_0 05.05.2019 19:07

Цитата:

Сообщение от рони (Сообщение 507406)
window.location.hash = "#close";

А ну да, чёт я совсем не догоняю уже. Не спал 20 часов. (это оправдание, пойду спать)
Так же ещё в тему оправданий: я часто мыслю подобными костылями - либо из-за незнания как правильно делать, либо из-за отсутствия возможности сделать правильно =)


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