В статье рассмотрим как сделать jQuery модальное PopUp окно предупреждения при первом запуске сайта с использованием cookie для хранения переменной, по которой можно определить заходил ли ранее пользователь на сайт и какой выбор он сделал. Логика всплывающего окна следующая: при первом запуске сайта выпадает PopUp окно с условием, например, спросим у пользователя — исполнилось ли ему 18 лет.
Если он просто закроет сайт и откроет снова — окно все равно будет выпадать, пока он не сделает выбор. Если он выберет «НЕТ» — будет всплывать запись, что для просмотра сайта нужно согласие или нужно покинуть сайт.
Таким образом окно будет все время выпадать и не давать делать никакие действия с сайтом, пока пользователь не согласится. Если пользователь нажмет «ДА», тем самым дав согласие, что ему есть 18 лет, окно больше не будет выпадать определенное количество дней, которое мы укажем в скрипте.
Код html модального окна:
<div id="warning-win"> <div class="cover-warning"></div> <div class="win-warning-content container-modal-warning"> <h2>Вопрос?</h2> <button id="b_yes">Да</button> <button id="b_no">Нет</button> <p class="text-warning" style="visibility: hidden;">Нужно подтвердить</p> </div> </div>
Код стилей css:
.win-warning-content { display: none; position: fixed; top: 0; right: 0; bottom: 0; left: 0; text-align: center; overflow-x: auto; overflow-y: scroll; padding: 20px; z-index: 200; } .cover-warning { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #000; opacity: 0.6; z-index: 100; } .container-modal-warning { max-width: 400px; margin: 200px auto; padding: 40px; background: #fff; max-height: 300px; overflow: hidden; } #b_yes, #b_no { padding: 10px 20px; } #b_yes { background: #00db09; color:#fff; } #b_no { background: #ff1f04; color:#fff; } .text-warning { margin-top:20px; color:red; } @media (max-height: 860px) { .container-modal-warning { max-width: 100%; margin: 100px 20px; padding: 19px; height: auto; min-height: 320px; background: #fff; overflow: hidden; } }
код jQuery скрипта:
в параметре expires указываем количество дней для хранения переменной в cookie
jQuery(function () { var wrap3 = $('#warning-win'), modal3 = $('.cover-warning, .win-warning-content'); if (!$.cookie('was') ) { modal3.fadeIn(); } $('#b_yes').click(function () { $.cookie('was', true, { expires: 365, path: '/' }); $(modal3).fadeOut(); }); $('#b_no').click(function () { $('.text-warning').css("visibility", "visible").fadeIn(2200); $.removeCookie('was'); }); });
Подключение jQuery и библиотеки cookie
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script src="//yandex.st/jquery/cookie/1.0/jquery.cookie.min.js"></script>
Добрый вечер. А куда этот скрипт вставить, чтобы работало на сайте WopdPress. Спасибо за ответ.
Добрый вечер, вообще js код нужно вставлять в js файл (например custom.js или main.js с вашей темой), css — в css файл (например style.css с вашей темой), код php или верстку html можно вставить в файл footer.php в корне вашей темы.
Подскажите пожалуйста как сделать затемнение заднего плана (чтобы до принятия не видно было что находится на страницах сайта) знаю что надо использовать filter: blur(3px);-webkit-filter: blur(3px); но куда, через кудой так и не понял….
Вам нужно в этот класс .cover-warning в css стилях это добавить. Если не получается — сбрасывайте ссылку на ваш сайт — поможем