HTML: Создаем свое PopUp окно. Создаём всплывающее модальное окно jQuery

Сегодня мы поговорим о том как создать свое popup окно для своего сайта. Сейчас данный метод очень популярен, однако большинство решений для его реализации являются платными. Пример не очень красивого окна (но это же всего лишь пример) внутри записи…

В данной записи мы научимся делать вот такое вот popup окно. Просто, быстро, эффективно, а главное бесплатно!

Любое попап окно по своей сути состоит из двух частей. Первое — затемнение общего фона. Второе — само окно. Окно же в свою очередь как правило разделяется на заголовок, текст и форму подписки. Давайте подготовим базу для нашего окна, учитывая указанную структуру.

Имеем:
fs_popup_bg — Затемнение сайта;
fs_popup — Само окно;
fs_popup_head — Заголовок окна;
fs_content — Содержимое окна, разделенное на две части;

Теперь пропишем необходимые стили…

#fs_popup_bg { z-index:9999; left:0; top:0; position:fixed; width:100%; height:100%; background:rgba(0,0,0,0.9); } #fs_popup { margin:10% 20%; z-index:10000; position:fixed; width:600px; border-radius: 25px; border: 5px solid #FF0000; height:300px; background: #000080; padding: 1px 10px 10px 10px; } .fs_content_left, .fs_content_right { float: left; padding: 5px: font-size: 20px; font-family: Arial; }

Бегло осмотрим стили нашего popup окна.
#fs_popup_bg — говорит о том, что наш фон, будет черным, и почти не прозрачным (0.9), располагаться будет в левом верхнем углу и занимать всю область экрана. При этом глубина элемента, а точнее его возвышение над другими элементами будет очень большая (заведомо больше других).
#fs_popup — говорит о том, что окно будет на уровень выше фона (иначе мы бы его не видели). Размеры его будут 600px на 300px с закругленными углами и красной рамкой.
.fs_content_left, .fs_content_right — говорит нам что блоки прижимаются влево (нужно для их расположения на одном уровне), они имеют отступы и шрифт Arial.

Заполним наше окно содержимым:

Закрыть В данной записи мы научимся делать вот такое вот popup окно. Просто, быстро, эффективно, а главное бесплатно! Скорей вводи свой E-Mail и получай кучу полезной информации!*

Ваш E-Mail:
* - Данное поле не активно. Нажимая кнопку "Подписаться" Вы даете свое согласие на использование Вашего адреса для целей массовой рассылки рекламных материалов. А еще Вы завещаете свою машину, квартиру и 10% своего дохода автору сайта.

И дополним наши стили, для более красивого отображения:

#fs_popup_bg { z-index:9999999999998; left:0; top:0; position:fixed; width:100%; height:100%; background:rgba(0,0,0,0.9); } #fs_popup { margin:10% 20%; z-index:999999999999; position:fixed; width:600px; border-radius: 25px; border: 5px solid #FF0000; height:300px; background: #000080; padding: 1px 10px 10px 10px; } .fs_popup_head { text-align: right; } .fs_popup_head a { color: #FFF; cursor: pointer; text-decoration: underline; } .fs_popup_head a:hover { cursor: pointer; text-decoration: none; } .fs_content_left, .fs_content_right { float: left; padding: 5px: font-size: 20px; font-family: Arial; } .fs_content_left { width: 370px; color: #FFF; font-size: 17px; line-height: 17px; font-family: Arial; } .fs_content_right { width: 200px; color: #FFFF00; } .fs_content_right small { font-size: 7px; line-height: 7px; } .fs_content_right input { margin: 5px; width: 190px; color: #000; } .fs_ok { border: 1px solid #FF0000; border-radius: 10px; height: 35px; background: #FFFF00; cursor: pointer; color: #000; }

Вот принципе и все. Как видно из примера JavaScript для popup окна по сути нужен в двух случаях:
1) Событие закрытие нашего окна;
2) Событие на нажатие на кнопку «Подписаться»;
Так же не помешает проверка, показывалось ли данное окно на данном компьютере. Для этих целей вполне подойдет работа с куками.

Внешние popup окна с рекламой – это ужасные идеи! Все здравомыслящие вебмастера, никогда не посоветуют вам использовать их на сайте. Но, если речь идет о внутренних popup окнах – это полезный элемент, который дает дополнительную информацию, предупреждает, предотвращает, дает возможность выбора и многое другое.

Что мы создадим?

В этом уроке мы создадим простое и красивое popup окно на jquery. Оно будет похоже на то, что используется в twitter. Естественно, вы сможете придать стиль, какой вам по душе.

Каким функционалом будет обладать окно?
  • Мы хотим, чтобы оно центрировалось на странице сайта, при его выводе.
  • Должна быть кнопочка «закрыть», или что-то подобное.
  • Когда мы кликнем вне блока – popup окно закроется автоматически.
  • Когда окно выведено, страница должна покрываться тенью, чтобы пользователь мог сфокусироваться.
Начнем разработку

Для реализации popup окна, мы будем использовать CSS и несколько строк jQuery кода, ну и само собой HTML. Заметьте, что для воплощения нашей идеи, не нужно никаких плагинов и дополнительных инструментов, все очень просто и надежно!

Click me X Some Title Goes Here: Some more content, for when you want to add a little bit more

Popup-box { position: absolute; border-radius: 5px; background: #fff; display: none; box-shadow: 1px 1px 5px rgba(0,0,0,0.2); font-family: Arial, sans-serif; z-index: 9999999; font-size: 14px; } .popup-box .close { position: absolute; top: 0px; right: 0px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; cursor: pointer; color: #434343; padding: 20px; font-size: 20px; } .popup-box .close:hover { color: #000; } .popup-box h2 { padding: 0; margin: 0; font-size: 18px; } .popup-box .top { padding: 20px; } .popup-box .bottom { background: #eee; border-top: 1px solid #e5e5e5; padding: 20px; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; } #blackout { background: rgba(0,0,0,0.3); position: absolute; top: 0; overflow: hidden; z-index: 999999; left: 0; display: none; }

Мы определим некоторые другие CSS стили в JavaScript коде. Эти стили требуют дополнительных вычислений, поэтому лучше будет сделать это с помощью jQuery. Давайте перейдем к javascript коду.

jQuery код popup окна

Для начала, подключите jQuery файл библиотеки. После чего, инициализируем jQuery и добавляем div #blackout в тело документа. Также определяем ширину popup окна.

$(document).ready(function() { $("body").append(""); var boxWidth = 400;

Далее, создаем функцию, которая центрирует окно. Ранее мы установили absolute позиционирование в CSS, мы не можем использовать margin: 0px auto; нам необходимо определить ширину экрана, отнять от этого ширину popup окна, и все это разделить на 2. Высотой будет текущая позиция скролла, плюс где-то 150px.

Немного ранее мы создавали #blackout div, это для накрытия тенью контента страницы. Теперь нам нужно убедиться, что этот блок будет иметь ширину и высоту идентичную монитору. Это также рассчитывается в этой функции.

function centerBox() { /* определяем нужные данные */ var winWidth = $(window).width(); var winHeight = $(document).height(); var scrollPos = $(window).scrollTop(); /* Вычисляем позицию */ var disWidth = (winWidth - boxWidth) / 2 var disHeight = scrollPos + 150; /* Добавляем стили к блокам */ $(".popup-box").css({"width" : boxWidth+"px", "left" : disWidth+"px", "top" : disHeight+"px"}); $("#blackout").css({"width" : winWidth+"px", "height" : winHeight+"px"}); return false; }

Эта функция должна запускаться 3 раза. Когда пользователь использует скроллинг, когда пользователь изменяет размер окна, также изначально, когда загружается страница.

$(window).resize(centerBox); $(window).scroll(centerBox); centerBox();

В конце, нам нужно установить события кликов. Когда пользователь кликает в область вне окна, оно должно закрыться. Когда пользователь нажал на «X», окно также должно исчезнуть. В случае кликов внутри popup окна, ничего не должно происходить. В коде добавлены комментарии, чтобы проще было разобраться.

$("").click(function(e) { /* Предотвращаем действия по умолчанию */ e.preventDefault(); e.stopPropagation(); /* Получаем id (последний номер в имени класса ссылки) */ var name = $(this).attr("class"); var id = name; var scrollPos = $(window).scrollTop(); /* Корректный вывод popup окна, накрытие тенью, предотвращение скроллинга */ $("#popup-box-"+id).show(); $("#blackout").show(); $("html,body").css("overflow", "hidden"); /* Убираем баг в Firefox */ $("html").scrollTop(scrollPos); }); $("").click(function(e) { /* Предотвращаем работу ссылки, если она являеться нашим popup окном */ e.stopPropagation(); }); $("html").click(function() { var scrollPos = $(window).scrollTop(); /* Скрыть окно, когда кликаем вне его области */ $("").hide(); $("#blackout").hide(); $("html,body").css("overflow","auto"); $("html").scrollTop(scrollPos); }); $(".close").click(function() { var scrollPos = $(window).scrollTop(); /* Скрываем тень и окно, когда пользователь кликнул по X */ $("").hide(); $("#blackout").hide(); $("html,body").css("overflow","auto"); $("html").scrollTop(scrollPos); }); });

На этом, создание popup окна на jQuery завершено! Нам не нужно скачивать плагины и писать сложные функции, всего несколько строк кода. Вы можете скачать исходники и посмотреть, как это работает локально, на вашем компьютере.


3. Пример модального окна jQuery, вызванного по ссылке (с Демо)

Скорее всего Вы уже не раз видели в интернете всплывающее модальное окно - подтверждение регистрации, предупреждение, справочная информация, загрузка файла и многое другое. В этом уроке я предложу несколько примеров по созданию самых простых модальных окон.

Создаём простое всплывающее модальное окно Приступим к рассмотрению кода простейшего модального окна, которое будет сразу появляться
jQuery код


$(document).ready(function()
{
alert("Текст во всплывающем окне");
});

Код вставляете в любое место в body Вашей страницы. Сразу после загрузки страницы, без каких-либо команд, Вы увидите окно следующего вида:


А вот следующий код будет выполняться после загрузки всей страницы в браузер. В нашем примере после загрузки страницы с изображениями выскочит простое всплывающие окошко:


$(window).load(function()
{
alert("Загрузка страницы завершена!)");
});

Вызов модального окна jQuery по ссылке с CSS Следующим шагом будет создание модального окна при нажатии по ссылке. Фон при этом будет медленно затемняться.


Часто можете видеть, что форма входа и регистрации находятся именно в таких окнах. Приступим к делу

Для начала напишем html-часть . Этот код размещаем в body Вашего документа.

Вызов модального окна



Текст модального окна
Закрыть
Текст в модальном окне.


Код CSS . Либо в отдельном css-файле, либо в в head.


body {
font-family:verdana;
font-size:15px;
}
.link {color:#fff; text-decoration:none}
.link:hover {color:#fff; text-decoration:underline}
#mask {
position:absolute;
left:0;
top:0;
z-index:9000;
background-color:#000;
display:none;
}
#boxes .window {
position:absolute;
left:0;
top:0px;
-top: 40px;
width:440px;
height:200px;
display:none;
z-index:9999;
padding: 20px;
overflow: hidden;
}
#boxes #dialog {
width:375px;
height:203px;
padding:10px;
background-color:#ffffff;
}
.top {
position:absolute;
left:0;
top:0;
width:370px;
height:30px;
background: #0085cc;
padding: 8px 20px 6px 10px;
}
.close {
float:right;
}
.content {
padding-top: 35px;
}

В коде jQuery основное внимание уделим позиции модального окна и маске, в нашем случае постепенному затемнению фона.

Внимание! Не забываем подключить библиотеку в head документа!


Подключение библиотеки с сайта Google. Ну и непосредственно сам код jQuery.

Код jQuery


$(document).ready(function() {
$("a").click(function(e) {
e.preventDefault();
var id = $(this).attr("href");
var maskHeight = $(document).height();
var maskWidth = $(window).width();
$("#mask").css({"width":maskWidth,"height":maskHeight});
$("#mask").fadeIn(1000);
$("#mask").fadeTo("slow",0.8);
var winH = $(window).height();
var winW = $(window).width();
$(id).css("top", winH/2-$(id).height()/2);
$(id).css("left", winW/2-$(id).width()/2);
$(id).fadeIn(2000);
});
$(".window .close").click(function (e) {
e.preventDefault();
$("#mask, .window").hide();
});
$("#mask").click(function () {
$(this).hide();
$(".window").hide();
});
});

Известный факт: большинство посетителей не совершают покупки при первом визите на товарную страницу интернет-магазина и даже не оставляют лиды — но как велико это большинство?

Согласно исследованиям компании SeeWhy, таковы 99% посетителей, впервые зашедших на ресурс. Конечно, речь идет в первую очередь о сайтах eCommerce, но все же возникает вопрос: если 99% посетителей ничего не покупают при первом визите, то как побудить их вернуться?

Хорошей новостью станет следующая статистика: 75% посетителей все же готовы возвратиться позже для завершения покупки.

Как бы вы не относились к popup окнам, эта маркетинговая технология все еще эффективна для привлечения внимания и сбора контактных данных (лидогенерации).

Проще говоря, используя popup окна, можно быстрее всего вернуть посетителя на лендинг.

Почему?

Это связано с методикой убеждения, известной как «прерывание паттерна» — когда ваше внимание, «усыпленное» определенным ритмом или последовательностью повествования, вдруг агрессивно привлекает что-то неожиданное. Вы часто испытываете этот эффект при просмотре фильмов, юмористических шоу и даже на важных переговорах.

Если говорить о контент- и email-маркетинге, то «прерывание паттерна» наиболее эффективно, когда читатель уже настроен на решение проблемы и продолжение взаимодействия (подписку на рассылку, покупку и т. д.).

Пример от сервиса Made.com. Маркетологи предложили своим посетителям бесплатный ваучер номиналом в 10 евро за сущий пустяк — адрес электронной почты. Это было сделано потому, что:

  • Все любят денежные подарки;
  • 10 евро за постоянный контакт по email — небольшая цена.
  • Согласно данным ExactTarget, электронная почта — наиболее предпочтительный для клиентов маркетинговый канал, ведь 77% потребителей предпочитают email другим каналам взаимодействия с брендом.

    Возможно, всплывающие окна не так уж плохи?

    Скорее всего, вы ненавидите pop-ups и имеете на это право. Еще бы, кому понравится сразу после перехода на лендинг видеть нечто подобное:

    Или вот такое:

    Вы можете даже не знать о сфере деятельности компании, а уже по шею засыпаны окнами pop up. Примеры выше — неудачные: прежде всего посетитель хочет узнать побольше о бренде, а потом уже скачивать «Бесплатное руководство по генерации трафика», «Бесплатную электронную книгу» и т. д. Разумеется, большинство пользователей ненавидят такие вещи и отвечают отказом от последующего взаимодействия с брендом.

    Возможно, стоит немного остыть и посмотреть на результаты тестов. Что говорят цифры? Вот данные сплит-теста поп апа и кнопки «Нет, спасибо» на popup оффере.

    Текст Количество просмотров Количество собранных email Коэффициент конверсии
    Нет, спасибо. Я предпочитаю платить полную стоимость 165 416 9928 6,0%
    Мне это неинтересно 165 625 7961 4,81%
    Нет, спасибо 165 021 7616 4,62%
    Нет 166 072 7433 4,48%

    Впечатляет? Тогда посмотрим на результаты компаний, эффективно использующих такой подход.

    1. Опыт использования всплывающих окон

    За обычный день сервис WP Beginner получает около 70-80 новых подписчиков благодаря различным методам лидогенерации. Но чем больше подписная база, тем успешнее бизнес, поэтому маркетологи сервиса решились на ряд экспериментов с pop-ups.

    Что было сделано?

    Было разработано popup окно, появляющееся, когда пользователь намеревался покинуть сайт. Эффект был достигнут благодаря технологиям отслеживания курсора и прочим методам. Вот как выглядело окно:

    Каковы результаты?

    Использование всплывающего окна на важнейших страницах (не на всем сайте) повысило количество регистраций на 660%. То есть от 70-80 лидов сервис перешел к показателю в 445-470 лидов за сутки — скачок на качественно новый уровень.

    Следующий кейс — от Backlinko. После добавления на лендинг СТА с предложением подписаться на рассылку, конверсия упала до 1.73% — необходимо было срочно что-то сделать. Маркетологи компании разработали popup окно, которое появлялось перед пользователями, решившими покинуть целевую страницу. Вот как оно выглядело:

    Помните, что конверсия было около 1.7% до использования popup окна? Через 2 дня после запуска pop-up статистика изменилась. Всего за два дня коэффициент конверсии вырос с 1.73% до 4.83% — более чем в 2 раза!

    Конечно, в мире, где один грамотный тест может повысить конверсию на 100, 300%, даже 1300%, результаты этого эксперимента выглядят скромно. Однако это не совсем так.

    Прежде всего, имея крупную подписную базу, маркетологи могут создавать релевантный для своей аудитории контент и настраивать систему кросс-селлинга. Таким образом, учитывая допродажи и прочие факторы, один контакт приносит сервису в среднем 15$.

    Если popup окна будут приводить по 15 дополнительных подписчиков в сутки, то ежедневный доход вырастет в среднем на $225, а годовой доход — на $82 125 соответственно. Неплохой заработок за 2 минуты проверки настроек, верно?

    Очевидно, что ненавистники pop-ups были неправы. Но существуют и другие факторы: показатель отказов и влияние всплывающих окон на пользовательский опыт. Что насчет этого?

    2. Как pop-ups влияют на пользовательский опыт и показатель отказов?

    Одна из первых мыслей при упоминании pop-up — рост числа отказов, ведь все больше людей будут уходить с лендинга по вине всплывающего окна, что абсолютно логично. Однако, вспомним приведенные выше примеры: маркетологи WP Beginner не увидели колебания данного показателя, равно как и Backlinko — число отказов не изменилось в обоих случаях.

    Дэн Зарелла (Dan Zarrella) пришел к такому же выводу после проведения серии тестов на своей личной целевой странице, выяснив, что присутствие всплывающего окна никак не влияет на показатель отказов. Единственное, что изменилось — убрав pop-ups, Дэн лишился 50% входящих лидов.

    3. Что насчет пользовательского опыта?

    Судя по всему, посетителям все равно. Маркетологи WP Beginner не получили ни одной жалобы на popup окна от своих клиентов.

    Если задуматься, в этом есть смысл. Да, неприятно видеть подобное после перехода на ресурс по ссылке с Facebook:

    Но это не повод в гневе покидать сайт. Что вы обычно делаете в подобных случаях? Верно — закрываете popup окно и продолжаете поиск нужного контента.

    Более того, грамотное использование pop-ups способно повысить пользовательский опыт, по примеру сервиса Vero. Если вы зайдете главную страницу и в течение 30 секунд не предпримете никаких действий, то увидите в углу окно с текстом: «Что мешает вам подписаться на Vero прямо сейчас?».

    4. Как уничтожить юзабилити с помощью всплывающих окон?

    Однако вы не можете встроить в лендинг любое pop-up-объявление и надеяться на высокую конверсию. Если popup окно не выделяется на странице, то оно как минимум бесполезно.

    Вы уже собираетесь уйти с лендинга, и тут… Бам! Произошло что-то непонятное, откуда в середине страницы появилась кнопка СТА? В действительности это popup окно наложилось на незатемненную страницу, слившись с фоном. Когда вы не отделяете pop-ups от остальной страницы, это сильно портит пользовательский опыт.

    Как выяснилось, многие маркетологи заблуждаются насчет всплывающих окон — оказывается, они все еще работают. Сейчас вы узнаете, как использовать pop-ups на своем лендинге для достижения максимального эффекта.

    5. Создание эффективных всплывающих окон

    Прежде чем приступать к созданию pop-ups, рассмотрим их основные виды. Существует две крупных разновидности popup окон:

  • Большие окна (оверлеи).
  • Окна, всплывающие в результате прокрутки страницы.
  • Оверлеи

    Они выглядят как на примере выше. Подобные окна заслоняют весь экран, затемняя фон. Всплывающее окно остается единственным элементом на странице, который четко виден пользователю — в последнее время наметилась тенденция использования всплывающих окон именно такого формата.

    Известный маркетолог Дэн Зарелла тоже использует оверлеи с затемнением фона, но само окно у него гораздо меньше обычного:

    Окна, всплывающие в результате прокрутки страницы

    Этот вид pop-ups появляется, когда пользователь прокручивает страницу до некоторого этапа — чаще всего данный формат используется в блогах, и он крайне эффективен. Пролистав половину страницы, вы увидите нечто подобное:

    В зависимости от ПО или плагина, используемого вами, можно экспериментировать с глубиной прокрутки — как далеко надо зайти пользователю, чтобы увидеть всплывающее окно. Кроме того, вы можете задавать появление pop-ups по времени, проведенному пользователем на сайте.

    К заголовкам, текстам полей и кнопок на всплывающих окнах применимы те же требования, что и к контенту на СТА. Ведь pop-ups и являются элементами призыва к действию, цель которых — увеличение просмотров/подписчиков/лидов.

    6. Лучшее время для показа всплывающих окон

    Если говорить о тестировании оверлеев, то сервис SumoMe собрал следующие данные: на сегодняшний день оптимальное время составляет 5 секунд после перехода посетителя на лендинг.

    Сервис WhichTestWon дает другую статистику. В ходе тестов было проверено появление оверлеев на 15, 30 и 45 секунде после посадки пользователя, и оптимальный результат показал первый вариант: появление окна через 15 секунд на 11% эффективнее варианта с 30 секундами, и на 50% — варианта с 45 секундами после посадки.

    Но помните — не существует идеального времени появления окна, ведь тесты необходимы в каждом конкретном случае. Это справедливо и для вопроса о частоте появления pop-ups. Проще говоря, статистика чужих ресурсов может мотивировать на собственное тестирование, но не должна быть объектом подражания — тестируйте.

    Статьи по теме: