Адаптивное всплывающее окно jquery. Делаем всплывающее окно jquery. Как сделать всплывающее окно jquery

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

Сегодня мы представим вашему вниманию 20 креативных методов продвижения для интернет-магазина.

1. Руководства по выбору подарков

Что вы делаете, когда пытаетесь придумать идею подарка? Все больше людей обращаются за ответом к поисковикам, вводя запросы вроде «идеи подарков для коллег» или «оригинальный подарок на день рождения». В результатах поиска им выдается множество советов по выбору презентов.

Почему бы вам не добиться того, чтобы и ваш товар появлялся в подарочных руководствах? Такие «пособия» создаются практически для каждой сферы деятельности, типов людей и праздников. Найдите списки, которые ранжируются на первых страницах поисковых систем, и посмотрите, в какой из них вы могли бы вписаться. Этот метод способен привлечь довольно большую часть трафика в ваш магазин.

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

2. Email-маркетинг

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

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

Кроме того, вам не нужно тратить все свое время на отправку писем. Упростите себе жизнь, создав . Существуют разные варианты рассылок, например:

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

Предоставляет широкие возможности по автоматизации за счет интеграции с наиболее популярными сервисами email-маркетинга. Такой подход экономит ваше время и позволяет сосредоточиться на содержании писем, а не их отправке.

3. Партнерские программы

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

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

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

4. Появление в прессе

Публичность — отличный способ привлечь новых клиентов и помочь большему количеству людей узнать о вашем товаре. Но, как правило, обеспечить ее довольно трудно. Журналисты мейнстрим-изданий тонут в море пресс-релизов и материалов для статей. Повысьте свои шансы быть увиденными и услышанными, работая с блогерами.

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

5. Прямые эфиры

Приложения вроде Periscope и Instagram — это относительно новые социальные платформы, но они уже показали свой маркетинговый потенциал. При этом совсем немногие компании делают короткие видео и эфиры, гораздо более популярны посты в Facebook, ВКонтакте или Twitter.

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

6. Pinterest

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

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

Убедитесь, что вы активизировали подробные пины (Rich Pins), позволяющие включать дополнительную информацию о продукте.

Также Pinterest вводит в свою экосистему пины с возможностью осуществления покупки через само приложение с помощью кнопки «Купить». За границей онлайн-ритейлеры уже активно прибегают к данному функционалу, но и вы можете наполнять свою страничку качественным контентом на случай ввода сервиса в России.

7. Facebook

Миллиарды людей по всему миру пользуются Facebook. В качестве платной рекламной платформы он предлагает возможности узконаправленного таргетинга. Настраиваемые аудитории (Custom Audiences), в частности, — это очень полезный способ продвижения через Интернет среди посетителей или подписчиков на электронную рассылку. Такое продвижение очень эффективно, потому что вы больше узнаете о тех, на кого направляете таргетинг, и соответствующим образом можете подстраивать свою рекламу.

Кроме того, Facebook ввел раздел «Магазин», чтобы облегчить процесс покупки людям, обнаружившим товар через соцсеть. Как говорится на их сайте, «эта функция внедряется постепенно и только в США», но она может стать доступной для России в скором времени, поэтому мониторьте новости социальных сетей.

8. Поисковая оптимизация

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

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

9. Реферальный маркетинг

Реферальный маркетинг (Referral Marketing), или , по сути представляет собой один из древнейших методов продвижения. Его цель — стимулировать людей заговорить о вашем продукте так, чтобы в широких кругах росла осведомленность о нем и увеличивались продажи.

Сегодня драйвером развития реферального маркетинга служит Интернет: он не только дает большой охват людей, но и дает возможность пользователям делиться вашим контентом, а вам — отслеживать влияние таких действий.

В США примером такого сайта может стать Reddit. В России он не слишком популярен, но у него есть свои конкуренты, например, Пикабу или Хабрахабр. Создавайте спонсорские посты, связанные с вашим бизнесом, используйте их как возможность рассказать о своем продукте и предложить скидку. Ключевой момент: постарайтесь, чтобы пост естественным образом вписывался в стилистику и тематику ресурса.

11. Стихийный магазин

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

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

12. Посты в собственном блоге

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

Данная соцсеть может похвастаться более чем 400 миллионами активных пользователей, и ее фокус на визуальном контенте отлично подходит для продвижения товаров в сети Интернет. Половина из упомянутой пользовательской базы заходит в Instagram ежедневно, так что любой бренд выиграет от размещения здесь своих товаров и услуг.

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

14. YouTube

YouTube превратился в одну из крупнейших в мире систем для поиска нового контента. Более того, видеоролики YouTube также могут ранжироваться традиционными поисковыми системами, такими как Google. Это создает отличную возможность для увеличения трафика.

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

15. Product Hunt

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

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

16. Конкурсы

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

Конкурсы можно и нужно проводить не только в магазине или в блоге, но и размещать посты об их проведении в социальных сетях — Facebook, Twitter, Pinterest и Instagram, что принесет вам еще больше трафика и, соответственно, лидов. Лучше всего для конкурса , который поможет вам собрать базу адресов потенциальных покупателей.

На старт, внимание, марш!

Товары не продают сами себя, но, к счастью, есть много способов их продвижения. Найдите в нашем списке тот, что подойдет именно вам, и приступайте к делу!

1. Модальное окно на jQuery «Simple Modal Box» 2. jQuery плагин «LeanModal»

Отображение контента в модальных окнах. Для просмотра плагина в действии на демонстрационной странице нажмите на ссылку: Sign Up Form или Basic Content.

3. jQuery плагин «ToastMessage»

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

4. Содержимое, всплывающее в модальном окне

Плагин «Reveal». Для просмотра плагина в действии нажмите на кнопку «Fire A Reveal Modal» на демонстрационной странице.

5. Симпатичные диалоговые окна

Нажмите на крестик на демонстрационной странице, чтобы посмотреть плагин в действии.

6. Mootools модальное окно, плагин «MooDialog»

7. jQuery всплывающая панель сверху экрана

8. jQuery всплывающее окно

jQuery плагин для отображения формы обратной связи во всплывающем окне.

10. MooTools плагин «LightFace» для реализации диалоговых окон Facebook

Диалоговые окна в стиле Facebook. Помимо статической информации в окна можно поместить изображения, фреймы, Ajax запросы. Много настроек работы плагина, очень мощный инструмент. Выглядит очень стильно и функционально. Пройдите по ссылкам на демонстрационной странице чтобы посмотреть примеры с различным содержимым.

11. jQuery модальное окно

Аккуратное всплывающее диалоговое окно на jQuery.

12. Модальные окна jQuery

Симпатичные всплывающие модальные окна. Три стилевых оформления. На демонстрационной странице представлено 3 ссылки для вызова окон.

13. Модальные окна jQuery

Всплывающие модальные окна нескольких видов. Для просмотра плагина в действии нажмите на ссылку на демонстрационной странице.

15. Всплывающее поверх страницы сообщение

Сообщение отображается поверх страницы, которая, в свою очередь, затемняется. Нажмите на надпись «Click me» на демонстрационной странице, чтобы увидеть всплывающее сообщение. Нажатие на крестик его закроет. Реализовано с помощью jQuery.

16. Модальное окно «ModalBox» на javascript

Реализация современных модальных диалоговых окон без использования всплывающих окон и перезагрузок страницы. На демонстрационной странице нажмите на кнопку «Start Demo» чтобы посмотреть на работу скрипта.

17. «Leightbox» плагин с использованием библиотеки Prototype

Плагин для отображения контента в модальных окнах.

Здравствуйте, уважаемые читатели a! Однажды я уже писал о модальных окнах, то была статья . В этой статье покажу способ создания всплывающего окна на любом сайте. Использовать будем jQuery плагин fancybox . А чтобы добавить смысловой нагрузки статье, вставим в модальное окошко форму отправки письма. Сразу хочу заметить модальные окна на этом плагине работают на всех браузерах. Приступим!

Что нам понадобится?! не так уж и много:

  • библиотека jQuery;
  • плагин fancybox;
  • сценарий PHP для отправки сообщения.
Разметка

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

Разметку не стану усложнять, просто кликаем по ссылке и открывается окно с формой отправки сообщения:

Отправить сообщение

Где значение атрибута href совпадаем с идентификатором блока div в котором располагается форма отправки письма:

1
2
3
4
5
6
7
8
9
10
11
12
13


Отправка сообщения


Ваш E-mail



Введите сообщение

Отправить E-mail

Добавим на форму два поля это текст сообщения и электронный адрес отправителя, а также кнопку оправки. После того как пользователь введет e-mail, текст сообщения и нажмет отправить сначала проведем проверку корректности введенной информации затем с помощью ajax запроса отправим данные в PHP сценарий.

Изначально форма скрыта:

#inline { display : none ; }

Стили формы

Немного стилей для оформления полей формы и пара классов применяемых к полям при не корректном вводе данных. Когда ошибки исправлены стиль полей становится нормальным.:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

Txt {
display : inline-block ;
color : #676767 ;
width : 420px ;

margin-bottom : 10px ;

padding : 5px 9px ;
font-size : 1.2em ;
line-height : 1.4em ;
}

Txtarea {
display : block ;
resize : none ;
color : #676767 ;
font-family : Arial, Tahoma, sans-serif ;
margin-bottom : 10px ;
width : 500px ;
height : 150px ;
border : 1px dotted #ccc ;
padding : 5px 9px ;
font-size : 1.2em ;
line-height : 1.4em ;
}

Txt : focus ,
.txtarea : focus {
border-style : solid ;
border-color : #bababa ;
color : #444 ;
}

Input.error,
textarea.error {
border-color : #973d3d ;
border-style : solid ;
background : #f0bebe ;
color : #a35959 ;
}

Input.error : focus ,
textarea.error : focus {
border-color : #973d3d ;
color : #a35959 ;
}

Для оформления кнопки «Отправить» будем .:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

#send {
color : #dee5f0 ;
display : block ;
cursor : pointer ;
padding : 5px 11px ;
font-size : 1.2em ;
border : solid 1px #224983 ;
border-radius : 5px ;
background : #1e4c99 ;
background : -webkit-gradient(linear, left top , left bottom , from(#2f52b7 ) , to(#0e3a7d ) ) ;
background : -moz-linear-gradient(top , #2f52b7 , #0e3a7d ) ;
background : -webkit-linear-gradient(top , #2f52b7 , #0e3a7d ) ;
background : -o-linear-gradient(top , #2f52b7 , #0e3a7d ) ;
background : -ms-linear-gradient(top , #2f52b7 , #0e3a7d ) ;
background : linear-gradient(top , #2f52b7 , #0e3a7d ) ;
filter : progid: DXImageTransform.Microsoft .gradient(startColorstr= "#2f52b7" , endColorstr= "#0e3a7d" ) ;
}

#send : hover {
background : #183d80 ;
background : -webkit-gradient(linear, left top , left bottom , from(#284f9d ) , to(#0c2b6b ) ) ;
background : -moz-linear-gradient(top , #284f9d , #0c2b6b ) ;
background : -webkit-linear-gradient(top , #284f9d , #0c2b6b ) ;
background : -o-linear-gradient(top , #284f9d , #0c2b6b ) ;
background : -ms-linear-gradient(top , #284f9d , #0c2b6b ) ;
background : linear-gradient(top , #284f9d , #0c2b6b ) ;
filter : progid: DXImageTransform.Microsoft .gradient(startColorstr= "#284f9d" , endColorstr= "#0c2b6b" ) ;
}

#send : active {
color : #8c9dc0 ;
background : -webkit-gradient(linear, left top , left bottom , from(#0e387d ) , to(#2f55b7 ) ) ;
background : -moz-linear-gradient(top , #0e387d , #2f55b7 ) ;
background : -webkit-linear-gradient(top , #0e387d , #2f55b7 ) ;
background : -o-linear-gradient(top , #0e387d , #2f55b7 ) ;
background : -ms-linear-gradient(top , #0e387d , #2f55b7 ) ;
background : linear-gradient(top , #0e387d , #2f55b7 ) ;
filter : progid: DXImageTransform.Microsoft .gradient(startColorstr= "#0e387d" , endColorstr= "#2f55b7" ) ;
}

Fancybox

Переходим к самому интересному, к использованию плагина. Вызываем метод .fancybox в качестве селектора выступает класс ссылки:

$(document) .ready (function () {
$(".modalbox" ) .fancybox () ;
$("#contact" ) .submit (function () { return false ; } ) ;

Также отменяем стандартное действие формы submit (отправить), это позволит нам использовать свой собственный ajax запрос. При вызове метода я не использовал не одного параметра, оставил все значения по умолчанию. Однако о них стоит упомянуть:

Название Описание
padding Отступы до содержимого в окне (По-умолчанию 15px)
margin Расстояние от краев браузера до окна (По-умолчанию 20px)
width Ширина по умолчанию для «IFRAME» и «SWF» содержимого. Кроме того, для «inline», «AJAX» и «HTML» объектов если «AutoSize» устанавливается на «false». Может быть числовым или «Auto». (По-умолчанию 800px)
height Высота по умолчанию для «IFRAME» и «SWF» содержимого. Кроме того, для «inline», «AJAX» и «HTML» объектов если «AutoSize» устанавливается на «false». Может быть числовым или «Auto». (По-умолчанию 600px)
minWidth Минимальная ширина окна (По-умолчанию 100px)
minHeight Минимальная высота окна (По-умолчанию 100px)
maxWidth Максимальная ширина окна (По-умолчанию 9999px)
maxHeight Максимальная высота окна (По-умолчанию 9999px)
autoSize Если «true», то autoHeight и autoWidth также «true» (По-умолчанию true)
autoHeight Если установлен «true», для «inline», «AJAX» и «HTML» содержимого высота определяется автоматически (По-умолчанию false)
autoWidth Если установлен «true», для «inline», «AJAX» и «HTML» содержимого ширина определяется автоматически (По-умолчанию false)
autoResize Если установлено «true», то размер содержимого будет изменяться вместе с изменением окна
autoCenter Если установлено «true», то содержимое будет по центру
fitToView Если установлено «true», то окно будет подстроено под размер браузера перед открытием (По-умолчанию true)
aspectRatio Если установлено «true», то изменение размера ограничено соотношением сторон (По-умолчанию false)
topRatio Вертикальное позиционирование. Если установлено 0.5 то расстояние до верха и низа окна браузера будет одинаково. Если 0 то модальное окно будет сверху (По-умолчанию 0.5)
leftRatio Аналогичный параметр только для горизонтального позиционирования (По-умолчанию 0.5)
scrolling Показывать полосы прокрутки. Может быть установлено ‘auto’, ‘yes’, ‘no’ или ‘visible’ (По-умолчанию auto)
wrapCSS Настраиваемый класс CSS
arrows Если установлено «true», то будут отображаться навигационные кнопки (По-умолчанию true)
closeBtn Если установлено «true», то кнопка закрыть окно будет отображаться (По-умолчанию true)
closeClick Если «true», то при нажатии на содержимое окно закроется (По-умолчанию false)
nextClick Если установлено «true», то в галерее при нажатии на содержимое будет переход к следующей картинке (По-умолчанию false)
mouseWheel Если «true», то галерею можно прокручивать с помощью колесика мыши (По-умолчанию true)
autoPlay Если «true», то при открытии первого элемента галерее начнется слайдшоу (По-умолчанию false)
playSpeed Скорость слайдшоу (По-умолчанию 3000 миллисекунд)
preload Количество картинок миниатюр под основным изображением (По-умолчанию 3)
modal Если «true», навигация и кнопка закрытия будет отключена (По-умолчанию false)
loop Если «true», то в галерее после достижения конца, начнется заново (По-умолчанию true)
ajax Опция для ajax запроса
iframe Опция для управления iframe
swf Опция для управления swf содержимым
keys Можно определить клавиши для навигации по слайдшоу
direction Направление навигации
scrollOutside Если установлено «true», то сценарий будет избегать создания полос прокрутки (По-умолчанию true)
index Переопределяет индекс группы начала (По-умолчанию 0)
type Переопределяет тип содержимого. Поддерживаемые типы «image», «inline», «AJAX», «IFRAME», «SWF» и «HTML» (По-умолчанию null)
href Переопределяет ссылкой источник контента (По-умолчанию null)
content Переопределяет содержимое, которое будет отображаться (По-умолчанию null)
title Переопределяет заголовок, можно установить любой HTML (По-умолчанию null)
tpl Объект, содержащий различные шаблоны
openEffect /
closeEffect /
nextEffect /
prevEffect
Эффект анимации для действий, возможны значения ‘fade’, ‘fade’, ‘elastic’, ‘elastic’
openSpeed /
closeSpeed /
nextSpeed /
prevSpeed
Скорость анимации (По-умолчанию 250)
openEasing /
closeEasing /
nextEasing /
prevEasing
Easing метод для каждого типа перехода (По-умолчанию swing)
openOpacity/
closeOpacity
Если установлено «true», то меняется прозрачность (По-умолчанию true)
openMethod/
closeMethod/
nextMethod/
prevMethod
Эффект transition может принимать значения ‘zoomIn’ / ‘zoomOut’ / ‘changeIn’ / ‘changeOut’
parent Родительский элемент в контейнере. Это полезно для ASP.NET, где верхний элемент является «формой» (По-умолчанию body)

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

1
2
3
4

$(".modalbox" ) .fancybox ({
padding : 0 ,
height : 100
} ) ;

Отправка сообщения

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

1
2
3
4

function validateEmail(email) {
var reg = /^(([^()[\]\\.,;:\s@"]+(\.[^()[\]\\.,;:\s@"]+)*)|(".+"))@((\[{1,3}\.{1,3}\.{1,3}\.{1,3}\])|((+\.)+{2,}))$/ ;
return reg.test (email) ;
}

Последний шаг — это отправка сообщения. Отслеживаем событие клик по кнопке «Отправить»:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

$("#send" ) .on ("click" , function () {
var emailval = $("#email" ) .val () ;
var msgval = $("#msg" ) .val () ;
var msglen = msgval.length ;
var mailvalid = validateEmail(emailval) ;
// Проверка правильности электронного адреса
if (mailvalid == false ) {
$("#email" ) .addClass ("error" ) ;
}
else if (mailvalid == true ) {
$("#email" ) .removeClass ("error" ) ;
}
// Проверка длины сообщения
if (msglen < 4 ) {
$("#msg" ) .addClass ("error" ) ;
}
else if (msglen >= 4 ) {
$("#msg" ) .removeClass ("error" ) ;
}

Помещаем в первые две переменные данные, которые ввел пользователь. Определяем длину сообщения (msglen ) и проводим проверку введенного электронного адреса (mailvalid ). Далее проверяем если в переменная mailvalid равна false , значит электронный адрес введен неверно, и данный инпут будет подсвечен красным. Также проверяем количество введенных символов в текст сообщения, если меньше 4 символов значит показываем, что это ошибка (подсвечиваем текстовый инпут красным). $("#contact" ) .serialize () ,
success: function (data) {
if (data == "true" ) {
$("#contact" ) .fadeOut ("fast" , function () {
$(this ) .before ("Успешно! Ваше сообщение отправлено:)" ) ;
setTimeout("$.fancybox.close()" , 1000 ) ;
} ) ;
}
}
} ) ;
}
} ) ;

Если оба поля проверены то вместо кнопки «отправить» показываем текст, что происходит отправка сообщения. Это дает пользователю подтверждение того, что оба поля проверены и идет процесс.

Теперь запрос AJAX. Первый параметр запроса это тип передачи данных (POST или GET). Далее указываем файл обработчик (sendmessage.php ). Следующий параметр data (данные), методом serialize подготавливаем данные в формах для отправки на сервер.

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

PHP сценарий

Мы посылаем данные, введенные пользователем с помощью JQuery в sendmessage.php . В PHP мы формируем получаем эти данные из POST массива, формируем и отправляем сообщение. Если отправка прошла успешно возвращаем обратно в JQuery true иначе false .

В переменной $sendto мы указываем адрес электронной почты на который будут приходить письма.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

$sendto = "[email protected]" ;
$usermail = $_POST [ "email" ] ;
$content = nl2br ($_POST [ "msg" ] ) ;

// Формирование заголовка письма
$subject = "Новое сообщение" ;
$headers = "From: " . strip_tags ($usermail ) . "\r \n " ;
$headers .= "Reply-To: " . strip_tags ($usermail ) . "\r \n " ;
$headers .= "MIME-Version: 1.0\r \n " ;
$headers .= "Content-Type: text/html;charset=utf-8 \r \n " ;

// Формирование тела письма
$msg = "" ;
$msg .= "Новое сообщение\r \n " ;
$msg .= "

От кого: " . $usermail . "

\r \n " ;
$msg .= "

Сообщение: " . $content . "

\r \n " ;
$msg .= "" ;

// отправка сообщения
if (@ mail ($sendto , $subject , $msg , $headers ) ) {
echo "true" ;
} else {
echo "false" ;
}


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();
});
});

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

В данном посту мы рассмотрим пример, как сделать модальное простое окно с помощью JQuery и CSS. Особенность данного примера в том, что тут не требуется , ну за исключением самой библиотеки JQuery.

Размещаем код модального окна на странице:

закрыть Открыть модальное окно

Как видно из разметки, блок самого модального окна это div c атрибутом id=modal_form , который содержит элемент span c id=modal_close . Этот элемент будет служить кнопкой для закрытия модального окна, кроме того, ниже блока расположен блок div с атрибутом id=overlay , который служит одновременно и для затемнения фона. Модальное окно будет открываться по ссылке, с классом modal .

CSS для модального окна

#modal_form { width: 300px; height: 300px; border-radius: 5px; border: 3px #000 solid; background: #fff; position: fixed; top: 45%; left: 50%; margin-top: -150px; margin-left: -150px; display: none; opacity: 0; z-index: 5; padding: 20px 10px; } #modal_form #modal_close { width: 21px; height: 21px; position: absolute; top: 10px; right: 10px; cursor: pointer; display: block; } #overlay { z-index:3; position:fixed; background-color:#000; opacity:0.8; -moz-opacity:0.8; filter:alpha(opacity=80); width:100%; height:100%; top:0; left:0; cursor:pointer; display:none; }

Для modal_form мы задали фиксированную ширину и высоту, а затем отцентрировали положение по центру экрана. Для подложки модального окна (overlay ) мы задаем размер по ширине экрана, заливку с прозрачностью, а так же прячем её по умолчанию. Особый момент с z-index , у модального окна он должен быть наибольшим из всех элементов на странице, а у обложки должен быть больше всех элементов, кроме самого модального окна.

Теперь к самому основному, это код на javascript. Для модального окна будет использоваться два основных события, это его открытие — клик по элементу с классом modal , в нашем случае это ссылка, и закрытие модального окна, это клик по обложке (overlay ), либо клик на кнопку закрыть, в нашем случае это элемент span с id=modal_close .

$(document).ready(function() { $(".modal").click(function(event){ event.preventDefault(); $("#overlay").fadeIn(400, // анимируем показ обложки function(){ // далее показываем мод. окно $("#modal_form") .css("display", "block") .animate({opacity: 1, top: "50%"}, 200); }); }); // закрытие модального окна $("#modal_close, #overlay").click(function(){ $("#modal_form") .animate({opacity: 0, top: "45%"}, 200, // уменьшаем прозрачность function(){ // пoсле aнимaции $(this).css("display", "none"); // скрываем окно $("#overlay").fadeOut(400); // скрывaем пoдлoжку }); }); });

Посредством animate мы меняем позицию по вертикали top , а так же прозрачность opacity , и с помощью этого получаем интересный эффект. Подобный эффект используется как при открытии окна, так и при его закрытии. Отличие в том, что меняется порядок применения свойств для блоков, тем самым визуализируя открытие и закрытие окна.




Top