Автор

Форма обратной связи на jQuery

Форма обратной связи на jQuery


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

 

ДЕМО
ИСХОДНИКИ

 

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

 

Создание структуры

Наличие HTML-структуры стандартной формы в кармане - это уже способ сэкономить время, не так ли? Элемент form содержит 2 элемента fieldset, которые разбивают форму на два основных блока. Каждый элемент формы (который обычно содержит <label> + <input>) заключен в простой div. Это позволяет нам легко контролировать интервал, устанавливая поля только один раз.

Вот структура html. Вы можете заметить некоторые конкретные классы, об этом мы поговорим в разделе CSS.

<form class="cd-form floating-labels">
<fieldset>
<legend>Account Info</legend>

<div class="error-message">
<p>Please enter a valid email address</p>
</div>

<div class="icon">
<label class="cd-label" for="cd-name">Name</label>
<input class="user" type="text" name="cd-name" id="cd-name" required>
</div>

<!-- ... -->
</fieldset>

<fieldset>
<legend>Project Info</legend>

<div>
<h4>Budget</h4>

<p class="cd-select icon">
<select class="budget">
<option value="0">Select Budget</option>
<option value="1">&lt; $5000</option>
<option value="2">$5000 - $10000</option>
<option value="3">&gt; $10000</option>
</select>
</p>
</div>

<div>
<h4>Project type</h4>

<ul class="cd-form-list">
<li>
<input type="radio" name="radio-button" id="cd-radio-1" checked>
<label for="cd-radio-1">Choice 1</label>
</li>

<li>
<input type="radio" name="radio-button" id="cd-radio-2">
<label for="cd-radio-2">Choice 2</label>
</li>

<li>
<input type="radio" name="radio-button" id="cd-radio-3">
<label for="cd-radio-3">Choice 3</label>
</li>
</ul>
</div>

<!-- ... -->

<div class="icon">
<label class="cd-label" for="cd-textarea">Project description</label>
<textarea class="message" name="cd-textarea" id="cd-textarea" required></textarea>
</div>

<div>
<input type="submit" value="Send Message">
</div>
</fieldset>
</form>

 

Добавление стиля

CSS делится на 3 части: 1) Форма, 2) Пользовательские значки и 3) Плавающие метки. Таким образом, если вам нужна основная часть кодирования, вы можете просто взять 1) форму.

Как добавить собственный значок: вам нужно добавить класс к элементу input / select / textarea, который вы хотите стилизовать с помощью значка (то есть класс .user к первому элементу ввода). Во-вторых, вам нужно добавить класс .icon к его родительскому элементу. Наконец, в CSS вы определите пользовательский фоновый рисунок. Если требуется ввести поле ввода, вам нужно определить 2 фоновых изображения, как в примере ниже:

.cd-form .icon input, .cd-form .icon select, .cd-form .icon textarea {
 	padding-left: 54px !important;
}
.cd-form .user {
 	background: url("../img/cd-icon-user.svg") no-repeat 16px center;
}
.cd-form [required].user {
 	background: url("../img/cd-icon-user.svg") no-repeat 16px center, 
 				url("../img/cd-required.svg") no-repeat top right;
}

Плавающие метки активируются с помощью класса .floating-labels, добавленного в элемент .cd-form. Если вы никогда не слышали об этом шаблоне UX, он был впервые представлен Мэттом Д. Смитом. Он также объяснил, как он придумал эту идею в этой интересной статье. На мой взгляд, это отличное решение для UX: оно позволяет сначала использовать метки в качестве заполнителей, а затем превращать их в анимированные метки после того, как пользователь начнет печатать. Таким образом, пользователь всегда имеет представление о том, какая информация уже была предоставлена.

Вы увидите в CSS класс .floating-labels из класса .js, который добавляется Modernizr, когда javascript поддерживается браузером. Таким образом, если javascript отключен браузером / пользователем, форма по-прежнему доступна со стандартными метками (класс .floating-labels не производит никакого эффекта).

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

.cd-form [required] {
 	background: url("../img/cd-required.svg") no-repeat top right;
}
 
.cd-form .error {
	border-color: #e94b35 !important;
}

Еще один интересный момент - это то, как мы создали пользовательские кнопки радио и проверки. Вы найдете исходный код довольно простым. Короче говоря, мы установили position: absolute; и opacity: 0; для радио и проверки входных элементов, и заменил их на пользовательские :: before и :: after псевдоэлементы label.

 

Обработка событий

Javascript был использован для активации плавающих меток. Если в DOM существует элемент .floating-labels, мы инициализируем функцию floatLabels (): он захватывает поля ввода формы (предназначенные для следующих элементов .cd-label) и привязывает функцию checkVal () к keyup () Событие, чтобы определить, начал ли пользователь вводить текст.

if( $('.floating-labels').length > 0 ) floatLabels();
 
function floatLabels() {
	var inputFields = $('.floating-labels .cd-label').next();
	
	inputFields.each(function(){
		var singleInput = $(this);
		
		singleInput.keyup(function(){
			checkVal(singleInput);	
		});
	});
}

Функция checkVal () проверяет входное значение: если не пусто, он добавляет класс float к предыдущему элементу .cd-label, в противном случае он удаляет его.

 

Вот и всё!

Многие материалы на сайте взяты из блогов: "Все для веб-дизайнера Rudebox", "A free library of HTML, CSS, JS nuggets Codyhouse" - полностью переведен и представлен в ознакомительных целях!

vk.com/club.ssdru

Подписывайтесь на нашу группу в контакте vk.com/club.ssdru



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

Форма обратной связи на jQuery

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


Форма обратной связи на jQuery

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


Форма обратной связи на jQuery

Хочу в данной статье немного расказать о создании нового сайта Image Club «PLATINUM» г.Саратов. Чтобы описать чем занимается Image Club, я приведу высказывания владелицы клуба Татьяны Бычковой:

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


Форма обратной связи на jQuery

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


Раскрутка в соцсетях

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


Перейти в Блог

Надёжный хостинг

С нами хостинг удобен и прост, как диван у вас дома. Вы с комфортом размещаетесь, а все внутренние пружины мы берем на себя.

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


Перейти на хостинг

О КОМПАНИИ

Studio Design существует с 2001 года. Основной нашей деятельностью до 2007 года было видеопроизводство ( видеореклама и документальные фильмы, о чем подробно описано в нашем блоге ). С 2007 года, вот уже как лет, наша основная специфика - это создание сайтов для бизнеса или частной деятельности, веб дизайн, а также поддержка и администрирование готовых проектов. Каждая выполненная нами работа - это уникальный, а самое главное, адаптивный под все современные мобильные устройства дизайн сайта. Мы готовы создать сайт с нуля для каждого клиента с любого уголка России! Мы поможем Вам в создании, как одностраничных сайтов – визиток, так и крупных интернет магазинов или корпоративных сайтов. А все наши работы, большинство из которых действуют и по сей день!

Close

Целовальников Сергей


Веб-дизайн, HTML5, CSS3, jQuery, JavaScript, Верстка.

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

Close