Всплывающее окно при первом посещении сайта на 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