Красивое всплывающее окно php

Что такое всплывающее окно и как его создать самостоятельно

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

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

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

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

Есть два вида рекламных окон:

  • Открывающиеся на переднем плане ( pop-up ) – всплывают поверх основного;
  • Открывающиеся на заднем плане ( pop-under ) – открываются за основным окном.
Читайте также:  Современная уличная мебель для террасы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Код приведен в варианте « для ленивых ». Вставив его в любой редактор и запустив на выполнение, вы получите готовый пример всплывающего окна на основе jquery :

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

Какой вариант лучше?

Для рекламных « трюков » больше подходит вариант, реализованный с помощью CSS 3 . Созданное таким образом окно не будет блокироваться браузерами. А для остальных задач вполне подойдет старый надежный javascript или новомодный jquery .

Источник

Создаем всплывающее окно при входе на сайт на HTML и jQuery

В этой статье вы узнаете, как создать всплывающее окно при входе на сайт с формой входа/регистрации с помощью HTML , CSS 3 и j Query . Для реализации popup окна требуется HTML , CSS и jQuery ( Javascript ). Я расскажу, как создать простую версию, а затем мы посмотрим, как ее можно улучшить.

Начало

Сначала нужно сбросить CSS браузера и импортировать дополнительные шрифты. Я собираюсь использовать Open Sans и Varela Round , которые доступны в Google Font .

Импорт шрифтов Google

Сброс CSS и стилей сайта по умолчанию

Стили разделов body и HTML можно изменить по своему усмотрению, это мало повлияет на создаваемую форму входа и popup окно jQuery .

Затем нужно подключить на странице jQuery . Я использую ссылку на jQuery , но можно использовать локальную версию.

Ссылка на jQuery v1.10

Создание CSS-наложения

Прежде всего, необходимо создать элемент наложения и контейнер для формы входа.

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

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

Сначала рассмотрим установку позиции и добавление цвета

Разберем этот код:

  • background-color: rgba(0,0,0,.25) — использование RGBA позволяет указать цвет и альфа-значение, альфа — это непрозрачность цвета;
  • bottom: 0 — позиционирует элемент внизу страницы;
  • left: 0 — позиционирует элемент по левому краю страницы;
  • position: fixed — при прокрутке страницы позиция элемента не изменяется;
  • top: 0 — позиционирует элемент вверху страницы;
  • width: 100% — элемент заполняет всю ширину страницы.

Вторая часть включает flexbox CSS3 , что значительно упрощает позиционирование элементов внутри контейнера. Давайте посмотрим:

Перед тем, как перейти к popup окну для сайта, пояснение Flexbox :

  • display: flex — определяет гибкий контейнер, либо inline-flex , либо block ( flex ) ;
  • justify-content: center — выравнивает содержимое по центру.

Примечание : на момент написания этой статьи flexbox не полностью поддерживался во всех основных браузерах. Если хотите охватить максимальное количество браузеров, необходимо использовать префиксы:

Стили панели входа на HTML и CSS

Теперь у нас есть контейнер, и нужно разместить в нем создаваемую форму входа. Общей чертой подобных форм с popup окном jQuery является полупрозрачная граница. Мы используем элемент контейнера для достижения этого эффекта, но можно использовать границу, чтобы получить то же самое:

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

Свойство, которое требует пояснений, это align-self , поскольку оно довольно новое. Это связано с flexbox . align-self определяет горизонтальное выравнивание элемента, и мы задали выравнивание точно по центру.

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

Мы используем сплошной белый фон, поэтому вместо rgba применили только rgb . Отступ в 24 пикселя можете изменить по своему усмотрению.

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

Теперь нужно оформить внутри панели входа заголовок ( h3 ):

Чтобы выделить заголовок, я использую черный округлый шрифт с размером 1.8 em . Использование 1.8 em задает размер шрифта относительно шрифта документа. Это называется эластичностью шрифта.

Создание кнопки закрытия

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

Вот объяснение кода:

  • background-color — мы используем приятный светло-серый фон;
  • border-radius — поскольку мы создаем круг, нам нужно, чтобы радиус закругления углов границы составлял 50% от высоты;
  • position: absolute — абсолютное позиционирование кнопки / ссылки, но так как для контейнера установлено относительное позиционирование, позиции всех элементов устанавливаются относительно него;
  • top — расстояние от верхней части формы входа — rem — относительная зависимость, которая связана с размерами шрифта;
  • transition — задает анимацию для всех свойств, используются значения 400ms ease ;
  • right — расстояние от правого края экрана до формы входа.

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

Создание формы входа

Скоро перейдем к HTML popup окну. А пока CSS-код формы входа:

Сначала мы определили стили для меток формы. Благодаря этому пользователь может нажать текст и перейти к соответствующему полю формы. Элемент label работает непосредственно с id данных.

Перед тем, как сделать popup окно HTML , мы создаем элементы ввода данных формы. Я указал inset box-shadow , чтобы задать для них красивую внутреннюю тень.

Использование селектора :focus позволяет указать, как будет выглядеть элемент ввода данных, когда пользователь установил в нем курсор. Необходимо наглядно показать, что элемент в данный момент выбран.

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

Стили кнопки входа

Стили кнопки не содержат ничего нового:

Для кнопки мы задали приятный синий фон с полупрозрачной темной рамкой. Этот прием позволяет не менять цвет границы, когда мы изменяем цвет фона. Мы также установили для кнопки стандартную CSS-анимацию перехода при смене цвета фона.

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

HTML-код формы входа

До сих пор все пояснения касались стилей CSS . Теперь пришло время вкратце рассмотреть разметку. В том числе и HTML popup окна.

В форме используются элементы HTML 5 , поэтому убедитесь, что doctype задан верно:

Если хотите обеспечить полную совместимость со старыми версиями браузеров и поддержку HTML 5 , включите приведенную ниже ссылку на Javascript в разделе head документа:

Полный HTML-код формы входа:

Важно отметить, что мы используем для окна наложения атрибут style=»display: none;» . Это важно, когда речь идет о Javascript / jQuery .

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

jQuery / Javascript

Мы будем использовать библиотеку jQuery для создания JavaScript popup окна. Это популярный в интернете эффект, он используется такими сайтами, как Facebook и Twitch.tv .

Нужно обернуть функции jQuery в функцию, которая загружается после того, как документ готов. Это предотвращает замедление:

Чтобы создать эффект растворения, мы используем метод jQuery fadeToggle . Он позволяет значительно проще анимировать элементы.

Мы используем fadeToggle при нажатии ссылки входа в систему. Для этого нам потребуется событие jQuery click :

Приведенный выше код запускает функцию encased при нажатии элемента с идентификатором loginLink . Чтобы указать ей, что делать, когда элемент нажат, нужно сделать следующее:

Использование jQuery-функции preventDefault() позволяет остановить связь с перенаправлением пользователя. Это обеспечивает функционал для разработчиков, которые могут ссылаться на страницу входа:

С помощью этой простой функции мы продублируем функционал для закрытия окна.

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

В JS popup окне сделаем так, чтобы пользователь мог нажать клавишу ESC для закрытия окна:

Важно отметить, что эта функция используется в теле if . Оператор проверяет, нажал ли пользователь клавишу ESC ( код клавиши 27 ).

Поскольку мы не хотим, чтобы пользователь открывал окно с помощью клавиши ESC , нужно проверить, отображается ли окно наложения или нет.

Вот все весь код jQuery :

AJAX и HTML 5

Что, если вы захотите сделать эту форму еще лучше? Можно включить в нее форму регистрации. Вот как это можно сделать без дублирования кода с помощью запроса JQuery AJAX GET :

Я создал новый класс для формы входа и ссылки для регистрации под названием « overlayLink ». После того, как пользователь нажимает на этот элемент, запускается функция.

Мы хотим, чтобы ссылки не делали ничего другого. Используем для этого preventDefault() . Затем нужно узнать, какую страницу нужно извлечь. Это указано в HTML-атрибуте data-action .

Теперь получаем код указанной страницы / формы или HTML popup окна. Страница, соответствующая нажатой ссылке, должна находиться в паке ajax/ . Затем результат помещается в элемент с классом login-content .

Код страницы ajax/login-form.html будет выглядеть следующим образом:

Ссылки для вызова запроса AJAX будут выглядеть так:

Затем можно создать файл ajax/registration-form.html :

Каждая ссылка имеет атрибут data-action , он ссылается на файл в папке ajax/ и загружает его в элемент наложения. Чтобы добавить другие файлы, нужно создать их в папке ajax/ — ajax/yourfile.html и задать data-action=»yourfile.html» .

Заключение и полный код

Спасибо за внимание. Сегодня мы узнали, как сделать popup окно. Надеюсь, это руководство оказалось полезным. Вот полный код:

Источник

Оцените статью
Поделиться с друзьями