Как настроить смартфоны и ПК. Информационный портал

PopUp - окно всплывающее. Создание и применение всплывающих окон

Внешние 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 завершено! Нам не нужно скачивать плагины и писать сложные функции, всего несколько строк кода. Вы можете скачать исходники и посмотреть, как это работает локально, на вашем компьютере.

PopUP-окно - это всплывающее объявление, предназначенное для привлечения веб-трафика или сбора адресов электронной почты. Такие элементы часто являются формами интернет-рекламы в WorldWideWeb. Как правило, это новые окна, открывающиеся в веб-браузере для показа рекламы. Обычно они генерируются JavaScript с помощью межсайтового скриптинга (XSS), иногда со вторичной полезной нагрузкой и использованием AdobeFlash.

Разновидностью PopUP являются всплывающие объявления, которые открываются в новом окне браузера, скрытом в активном.

История возникновения

Первые всплывающие объявления возникли на хостинге Tripod.com в конце 1990 годов. Этан Цукерман утверждает, что он написал код для запуска рекламы в отдельных окнах в ответ на жалобы на баннерные объявления. Впоследствии разработчик неоднократно приносил свои извинения за неудобства, которые стало причинять его изобретение.

Opera была первым крупным браузером, в который были включены инструменты для блокирования всплывающих окон. Обозреватель Mozilla позже улучшил эти разработки, начав блокировать PopUP-окно, генерируемое при загрузке страницы. В начале 2000-х годов все основные веб-браузеры, кроме Internet Explorer, позволяли пользователю почти полностью убирать нежелательные всплывающие объявления. В 2004 году Microsoft выпустила Windows XP SP2, которая добавила блокировку и в этот обозреватель.

Большинство современных браузеров поставляются с инструментами защиты от всплывающих окон. Сторонние инструменты обычно включают и другие функции, например, фильтрацию объявлений.

Всплывающие окна

Некоторые типы загружаемого контента - изображения, бесплатная музыка и другие - могут вызывать всплывающие окна. Кроме того, они иногда выглядят как обычные веб-страницы, и название сайта будет отображаться в строке поиска. Многие ресурсы используют всплывающие окна для отображения информации, не прерывая открытую в данный момент страницу. Например, если бы вы заполнили форму на веб-странице и нуждались в дополнительном руководстве, PopUP-окно дало бы вам дополнительную информацию, не вызывая потери каких-либо данных, уже введенных в форму. Большинство блокировщиков всплывающих объявлений разрешают такую загрузку.

Но нужно помнить, что некоторые веб-инсталляторы, например, используемые McAfee, применяют всплывающее окно для установки программного обеспечения. На многих интернет-браузерах нажатие клавиши Ctrl при щелчке по ссылке позволит обойти фильтр.

При этом щелчок (даже случайный) по одному всплывающему окну может привести к открытию других.

Обход блокировщика всплывающих окон

Комбинация рекламного баннера и всплывающего окна - это «объявление при наведении», которое использует DHTML для отображения на экране поверх контента страницы. С помощью JavaScript объявление может быть наложено поверх веб-страницы в прозрачном слое. Это рекламное объявление может появиться почти во всех случаях, когда этого хочет автор рекламы. Такой скрипт PopUP-окна невозможно заметить заранее. Например, реклама может содержать анимацию AdobeFlash, связанную с сайтом рекламодателя. Она также может выглядеть как обычное окно. Поскольку реклама является частью веб-страницы, ее нельзя заблокировать с помощью блокировщика, но ее открытия можно избежать с помощью сторонних приложений (наподобие AdBlock и AdblockPlus) или с помощью настраиваемых таблиц стилей.

PopUNDER

Такое объявление похоже на обычное PopUP-окно, но оно отображается скрытым за основным окном браузера, а не появляется перед ним. Когда всплывающие объявления стали широко распространенными и стали занимать целый экран компьютера, многие пользователи научились немедленно закрывать их не глядя. Поэтому появились PopUNDER, которые не мешают пользователю просматривать содержимое сайта. Они, как правило, остаются незамеченными до тех пор, пока основное окно браузера не будет закрыто или свернуто. Исследования показали, что пользователи лучше реагируют на такую рекламу, чем на всплывающие объявления, поскольку они не выглядят столь назойливо.

Популярная рекламная технология

В рекламном объявлении задействованы две очень простые функции JavaScript, введенные в 1997 году с помощью браузера Netscape 2.0B3. Эта методология широко используется в Интернете. Современные веб-издатели и рекламодатели используют ее для создания окна перед контентом страницы, загрузки рекламы, а затем отправки его за экран.

Большинство современных браузеров позволяют открывать всплывающее окно PopUP только в том случае, если имеет место какое-либо взаимодействие с пользователем (например, щелчок мыши). Любые неинтерактивные вызовы (обратный вызов по таймеру, события загрузки и т. д.) приведут к блокированию нового окна. Чтобы обойти это ограничение, большинство всплывающих объявлений запускаются при помощи прослушивателя событий мыши, прикрепленного непосредственно к документу или телу документа. Это позволяет зафиксировать все случаи щелчка мыши на странице, которые не были использованы другими обработчиками событий. Например, когда пользователь выделяет текст, щелчок мыши оказывается замечен прослушивателем, прикрепленным к документу. В результате открывается всплывающее окно с использованием вышеуказанного кода.

«Хитрый» генератор PopUP-окон

Пользователи различных сайтов и веб-приложений постоянно сталкиваются с нежелательными всплывающими окнами при пользовании браузером. Обычно такое PopUP-окно убирается с помощью функции «закрыть» или «отменить». Поскольку это типичный ответ пользователя, разработчики стали применять некоторые хитрости. Так, при разработке рекламных сообщений создаются экранные кнопки или элементы управления, похожие на опцию «закрыть» или «отменить». Однако когда пользователь выбирает один из этих вариантов, кнопка выполняет неожиданное или несанкционированное действие (например, открытие нового всплывающего окна или загрузка нежелательного файла в систему пользователя).

Поскольку технологии для веб-дизайна позволяют авторам использовать любой вариант «имитации», некоторые пользователи отказываются кликать или взаимодействовать с любым элементом внутри всплывающего окна вообще.

URL-перенаправление

Иногда URL-адреса перенаправляется на рекламные страницы с помощью функции Background URL redirection. Они иногда открываются в новой вкладке, а затем содержимое старой фоновой вкладки заменяется на рекламные страницы с помощью редиректа. AdblockPlus, uBlock или NoScript не могут блокировать эти всплывающие переадресации. Эту особенность все чаще используют распространители рекламы в поисках способа, как сделать PopUP-окно наиболее активным.

Как избавиться от всплывающих окон

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

  • Firefox: нажмите кнопку с названием приложения в верхнем левом углу. Наведите указатель мыши на «Справка» и выберите «О Firefox». Это откроет окно с информацией о версии обозревателя. Если ваш браузер не будут автоматически загружены и установлены.
  • Chrome: нажмите кнопку меню в правом верхнем углу. Выберите «О Chrome» в нижней части, откроется новая вкладка, и браузер проверит наличие обновлений. Если они есть, они будут установлены автоматически.
  • Internet Explorer: способ обновления зависит от используемой версии обозревателя. Для более старых вариантов вам нужно будет войти Центр обновления Windows. Для Internet Explorer 10 и 11 вы можете включить автоматические обновления, щелкнув значок Gear и выбрав About Internet Explorer.
Если обновления не помогают

Иногда PopUP-окно для сайта и подобное программное обеспечение внедрено слишком глубоко, чтобы его можно было удалить путем обновления. В подобных случаях переустановка или изменение веб-браузера может помочь решить проблему.

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

26.09.14 23K

У многих пользователей интернета термин «вплывающее окно » вызывает негативные ассоциации. Перед глазами сразу же «вплывает » картинка того, как при попытке просмотреть на сайте нужную информацию эта гадина закрывает нужный кусок текста. Что еще хуже, если пытаться закрыть его, пользователя зачастую вообще перекидывает на другой ресурс.

А такая ли гадина эти ваши всплывающие окна?

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

Они служат для информирования и как средство диалога между пользователем и программой (веб-приложением ). Но, к сожалению, такое негативное отношение многих пользователей к всплывающим окнам во многом оправдано, потому что в сети они применяются в основном для рекламных целей.

  • Открывающиеся на переднем плане (pop-up ) – всплывают поверх основного;
  • Открывающиеся на заднем плане (pop-under ) – открываются за основным окном.

Последние являются самыми коварными. Они становятся активными и видными для пользователя лишь после закрытия основного. Поэтому определить их источник и вовремя блокировать не удастся.

Средства борьбы

Из-за повсеместного применения всплывающих окон для нежелательной рекламы в интернете многие разработчики программного обеспечения начали встраивать в свои продукты средства борьбы с ними.

Основной программой для пользования интернетом являются браузер. Поэтому основной способ блокировки действия рекламных окон реализован именно в браузере:

  • Internet Explorer – стал последним из всех программных продуктов, в котором была реализована возможность блокировки всплывающей рекламы. Это было сделано лишь в 2004 году;
  • Opera – этот продукт стал первым браузером в мире со встроенной функцией блокировки всплывающих окон. Всплывающие окна в Опере можно блокировать, начиная с 2000 года;
  • Mozilla Firefox – этот браузер усовершенствовал подход к борьбе с рекламой, который был реализован в Opera . В отличие от него в Мозиле блокируются не вся всплывающая реклама, а лишь та, которая загружается при открытии основного окна.

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

Создание всплывающих окон с помощью javascript

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

  • Метод alert() – выводит на экран обычное текстовое сообщение. Чтобы скрыть диалог после прочтения, нужно нажать на кнопку «Ok » внизу окна;
  • Метод confirm() – подобен предыдущему методу. Но выводимый им диалог кроме «Ok » снабжен еще и кнопкой «Cancel ». С их помощью пользователь может принять или отказаться от условия, указанного в окне;
  • Метод prompt() – служит для вызова еще одной разновидности всплывающего окна javascript . В отличие от упомянутых выше это окно снабжено еще и текстовым полем. В него пользователь может вводить текстовые данные, которые можно присвоить значению нужной переменной.

Действие всех трех методов и вызываемые ими разновидности диалога показаны на изображении:

Но это всего лишь разновидности диалогов. Для создания настоящего всплывающего окна в javascript используется метод open() объекта window .

Вот полный синтаксис метода:

win = window. open (url, name, params) , где:

  • url – это адрес страницы, которая откроется в новом окне;
  • Name – имя созданного окна. Может быть использовано для дальнейшей обработки в формах (параметр target );
  • Params – строка параметров для нового окна. Их полный список можно узнать самостоятельно из документации по javascript.

На изображении ниже показано действие метода и приведен упрощенный скрипт всплывающего окна:

Создается функция f1 , в теле которой реализован вызов метода window. open() . Затем идет вызов этого метода с одним параметром, указывающим адрес страницы, которая откроется в созданном окне. После этого вызывается метод setTimeout() . В качестве параметров ему передается функция f1 и интервал времени, через который откроется новое окно.

Создание всплывающего окна с помощью CSS

Также можно создать всплывающее окно в CSS . Эта возможность была реализована лишь с выходом третьей версии этой технологии. Злоупотреблять этим вариантом не стоит, потому что он будет работать лишь в самых новых версиях браузеров:

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

Обзор остальных технологий

Совсем не обязательно разрабатывать всплывающее окно самостоятельно. Сейчас для этого создано много бесплатных плагинов на jquery . Подключив один из них, вы получите готовое окно.

Также существует множество плагинов для популярных CMS . В их состав может входить целый набор окон. Дизайн и функционал каждого из них «заточен» под выполнение определенной задачи (регистрация, отправка сообщения и другое ).

Также существует несколько популярных скриптов. Пример одного из них будет приведен ниже. По такому принципу работают всплывающие окна в контакте и других популярных социальных сетях:

Как сделать всплывающее окно на Jquery $(document).ready(function(){ PopUpHide(); }); function PopUpShow(){ $("#window-popup").show(); } function PopUpHide(){ $("#window-popup").hide(); } .box { width: 400px; height: 300px; background-color: #ccc; margin:0px auto; padding:10px; font-size:40px; color: #fff; } .popup { width:100%; min-height:100%; background-color: rgba(0,0,0,0.5); overflow:hidden; position:fixed; top:0px; } .popup .popup-content { margin:40px auto 0px auto; width:200px; height: 80px; padding:10px; background-color: #c5c5c5; border-radius:5px; box-shadow: 0px 0px 10px #000; } Пример всплывающего окна
Показать попап Поздравляю вы сделали всплывающее окно!!! Скрыть попап

Код приведен в варианте «для ленивых ». Вставив его в любой редактор и запустив на выполнение, вы получите готовый пример всплывающего окна на основе 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) Событие на нажатие на кнопку «Подписаться»;
Так же не помешает проверка, показывалось ли данное окно на данном компьютере. Для этих целей вполне подойдет работа с куками.

Лучшие статьи по теме