Я думаю, все со мной согласятся, что всяческие всплывающие окна с, например, порно рекламой - это плохо. Однако, иногда popup-окошко может неплохо пригодиться. Ведь подавляющее большинство интернет-пользователей - это юзеры непродвинутые. И иногда их следует подталкивать к действию, которое мы от них ждем. Допустим, это будет подписка на рассылку.
В данной заметке я расскажу (и покажу на примере) насколько просто создать всплывающее попап окно с помощью javascript-библиотеки jquery, а так же мы предусмотрим возможность блокировки этого всплывающего окна пользователем. Popup-окошко будет всплывать при посещении страницы сайта, например спустя секунду после ее загрузки. Затем, если посетитель нажмет кнопку закрытия окошка либо выполнит действие, предлагаемое всплыващим окном, попап-окошко заблокируется в cookie браузера и больше этому пользователю показываться не будет. Если он конечно не ушел с сайта сразу при виде всплывающего окна :) И последнее - мы реализуем "разблокировку" нашего всплывающего окна по нажатию определенных кнопок клавиатуры - это будет полезно в первую очередь нам самим при разработке.
Итак, начнем. Пусть у нас есть форма подписки, которую мы хотим разместить в качестве всплывающего попап окна на нашем сайте. Попапом будет блок (к примеру, #adSite), абсолютно спозиционированный относительно общего контейнера - например body. Для этого нужно:
Сразу покажу, что у нас получится в конце - пример страницы со всплывающим окном. Вы можете открыть исходный код, чтобы посмотреть как все устроено.
Как это работает: после загрузки страницы плюс 1 секунду запускается функция показа всплывающего окна. Она проверяет наличие в cookie пометки о блокировке всплывающего окна, и если ее нет - показывает попап-окно. Окошко показывается с помощью метода slideDown - то есть как бы выезжает вниз. Затем если пользователь заполнил форму подписки и нажал "Подписаться", то окошко скрывается и в cookie помечается как заблокированное. При последующих перемещениях по сайту или перезагрузке страницы оно показываться не будет. То же самое происходит если посетитель нажал на крестик.
Показать заблокированное всплывающее окно и отменить блокировку - то бишь стереть пометку в cookie - можно, нажав сочетание клавиш ctrl+enter.
Вобщем все вроде просто и разобраться в скрипте нашего всплывающего окна надеюсь вы сможете без труда. С минимальными познаниями в jQuery и javascript.
Комментарии
Как-то невнятно. Хотелось бы побольше деталей!
1 раз только окно можно закрыть? чушь какая то
Здорово!!!А как можно сделать, чтоб по кнопке окно закрывалось, но при следующей загрузке открывалось вновь.!? Например проходит акция на сайте и охота пользователям об этом напоминать...А так один раз увидишь, не поймешь, закроешь и все больше не появится!))
А все нормально, из кода запись в куки убираешь /*setCookie('pop', '1');*/, которая блокировку ставит и все путем)))
есть способ гораздо прикольней и интересней. сделан с помощью диалога, все в модале. красота. и кукой управлять можно.
Возможно ли прописать, чтобы куки автоматически удалялись через несколько дней. Я прописал строчку expire.setTime(today.getTime() + 3600000*24*nDays); , чтобы они удалялись раз в сутки, но не уверен, что это сработает в этом скрипте, а проверить проблематично!:-)
Большое спасибо, пример выручил.
Однако есть задача, не знаю как к ней подступить: в примере используется скрипт jquery.js. На сайтах на WP на многих уже прописана такая библиотека, и если подгружать ту что из примера, то не работает
$(document).ready(function() { showPop(); });- туда не заходит даже. Так вот - как сделать так, чтобы библиотека подгружалась, только если уже не был загружен другой jquery?
PS: Captcha жуткая, восьмой раз ввожу...
тут круче, устанавливаешь блокировку по куки хоть на день хоть на час, и окно fancybox
http://forum.vingrad.ru/forum/topic-326228/kw-cookie.html
дайте рекомендации как сделать всплывающий сайт а не окно подписки на самом сайте
ну, а где сам скрипт-то?