Всплывающее окно при первом посещении сайта на jQuery
Представляю вашему вниманию гостевой пост от Сергея Предводителева, одного из разработчиков Арктической Лаборатории .
* * *
На некоторых сайтах необходимо при первом посещении показывать посетителю информацию во всплывающем окне. Это может потребоваться, например, для сайтов некоторых тематик, чтобы узнать возраст посетителя. Ещё один вариант использования данного функционала — рассказать кратко о цели сайта.
Для реализации такого функционала мы будем использовать jQuery и несколько плагинов к нему.
Чтобы показывать всплывающие окна воспользуемся плагином arcticModal . Этот плагин, в отличие от многих других, позволяет очень просто кастомизировать внешний вид модальных окон.
Для того, чтобы показать окно лишь один раз, будем запоминать в куках, что посетитель заходил на сайт. Работу с куками нам обеспечит небольшой плагин с простым именем cookie.
Подключаем необходимые файлы
Если на вашем сайте не подключен jQuery, то подключим его. Используем CDN Яндекса. Вставляем этот код внутри тега <head></head>:
<!-- jQuery --> <script src="//yandex.st/jquery/1.9.1/jquery.min.js"></script>
Теперь займёмся плагином для всплывающих окон. Скачиваем arcticModal c официального сайта и подключаем его:
<!-- arcticModal --> <script src="arcticmodal/jquery.arcticmodal.js"></script> <link rel="stylesheet" href="arcticmodal/jquery.arcticmodal.css">
Не будем придумывать стиль оформления окна и подключим одну из стандартных тем arcticModal. Как будут выглядеть окна, можно посмотреть на сайте плагина .
<!-- arcticModal theme --> <link rel="stylesheet" href="arcticmodal/themes/simple.css">
Если вам не подходит такое оформление, то его можно легко исправить, обладая даже небольшими знаниями CSS. В качестве основы можно взять файл стилей стандартной темы.
Подключаем плагин cookie (тоже с Яндекса):
<!-- cookie --> <script src="//yandex.st/jquery/cookie/1.0/jquery.cookie.min.js"></script>
HTML
Всё, что было нужно, подключено, теперь напишем код всплывающего окна с информацией для пользователя:
<div style="display: none;"> <div class="box-modal" id="boxUserFirstInfo"> <div class="box-modal_close arcticmodal-close">закрыть</div> <b>Здравствуй, милый человек!</b><br> <br> Надеюсь тебе понравится на нашем сайте! У нас много интересной информации и очень отзывчивое комьюнити. Добро пожаловать :) </div> </div>
В коде используется класс arcticmodal-close. При клике на элемент с таким классом окно будет закрываться.
Код JS
И, наконец, напишем скрипт, который и реализует всю логику:
<script>
(function($) {
$(function() {
 // Проверим, есть ли запись в куках о посещении посетителя
 // Если запись есть - ничего не делаем
 if (!$.cookie('was')) {
  // Покажем всплывающее окно
  $('#boxUserFirstInfo').arcticmodal({
   closeOnOverlayClick: false,
   closeOnEsc: true
  });
 }
 // Запомним в куках, что посетитель к нам уже заходил
 $.cookie('was', true, {
  expires: 365,
  path: '/'
 });
})
})(jQuery)
</script>
Параметр closeOnOverlayClick при вызове arcticModal определяет, будет ли закрываться окно при клике на оверлее (слою, перекрывающему весь контент, т. е. при клике вне окна), а параметр closeOnEsc — при нажатие кнопки Esc.
Параметр expires при сохранении записи в куках задаёт время хранения куки в днях. В нашем случае 365 дней, т. е. в течение года после посещения сайта мы не будем показывать окно. При каждом посещении кука обновляется.
Ссылки
Опубліковано: 02/04/13 @ 06:55
Розділ  javascript  
Рекомендуємо:
24 жовтня, Херсон - Rock'n'Talk Party
 Дайджест: як не треба писати код , що таке стек , лікнеп з NoSQL і мобільних мереж
 16 жовтня - 4 листопада, Київ - MTV EXIT оголошує конкурс ідей IT- проектів Challenge Slavery
 17 жовтня, Київ - Speakers ' Corner : " Програмування мікроконтролерів в домашніх умовах і про життя в Дубліні "
 Дайджест цікавих вакансій № 107