Показать сообщение отдельно
  #7 (permalink)  
Старый 21.06.2021, 12:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

localStorage показ банера каждые 2 часа
Stas1985,

<!DOCTYPE html>

<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        .modalDialog {
            display: none;
        }
        .modalDialog.open {
            display: block;
        }
    </style>

    <script>
       document.addEventListener("DOMContentLoaded", function() {
            const limit = 2 * 3600 * 1000; // 2 часа
            const localStorageInitTime = localStorage.getItem('localStorageInitTime') || new Date() - limit;
            const delta = new Date() - localStorageInitTime;
            const close = document.querySelector('.close-modalDialog');
            const modalDialog = document.querySelector('.modalDialog');
            const openModal = _ => modalDialog.classList.add('open');
            const closeModal = _ => {
                modalDialog.classList.remove('open');
                localStorage.setItem('localStorageInitTime', +new Date());
                window.setTimeout(openModal, limit);
            };
            window.setTimeout(openModal, delta >= limit ? 0 : limit - delta);
            close.addEventListener('click', closeModal)
        });
    </script>
</head>

<body>
<div id="open" class="modalDialog">
<div>
<a href="#close" title="Закрыть" class="close-modalDialog">X</a>
<div class="hello" id="welcome-window">
<!--banner-->
    banner banner
 <!--banner end-->
</div>
</div></div>
<div class="clr">

</div>

</body>
</html>
Ответить с цитированием