В настоящее время, UX является ключевым фактором в создании / дизайне продукта или системы. Чтобы обеспечить хороший пользовательский опыт, разработчики изо всех сил стараются создавать интуитивный дизайн и эффективную интерактивность.
UX (user experience) это термин, который используется для описания общего впечатления и удовлетворенности пользователей при использовании продукта или системы. Так образом, хороший UX всегда сделает пользователя счастливым, а бизнес более успешным.
Сообщения в виде уведомлений, являются важной частью пользовательского опыта, и вы не можете позволить себе их упустить. Уведомление должно появляться каждый раз, когда пользователь выполняет важные задачи.
Разновидности уведомлений
Ниже представлен список общепринятых уведомлений:
- Информационный (info)
- Ошибки (error)
- Предупреждения (warning)
- Успешное выполнение задачи (success)
Информационный (info)
Ее целью является информирование пользователей о соответствующем вопросе.
Ошибки (error)
Когда операция закончилась неуспешно, пользователь должен быть уведомлен. Например: “Аккаунт не может быть удален.” или “Настройки не были сохранены” и т.д
Предупреждения (warning)
Этот тип сообщения уведомит пользователя о состоянии, которое может вызвать проблемы в будущем.
Успешное выполнение задачи (success)
Сообщение об успехе, должно отображаться после того как пользователь удачно выполнил действие.
HTML
Начнем с разметки HTML. Здесь все довольно-таки просто: 4 контейнера с заголовком и описанием уведомления.
<div class="info message"> <h3>Важно!</h3> <p>Это всего лишь информационное уведомление.</p> </div> <div class="error message"> <h3>Упс, произошла ошибка</h3> <p>Это всего лишь уведомление об ошибке.</p> </div> <div class="warning message"> <h3>Минуточку, мы должны Вас предупредить!</h3> <p>Это всего лишь предупредительное сообщение.</p> </div> <div class="success message"> <h3>Поздравляем, вы завершили действие!</h3> <p>Это всего лишь уведомление об успешном действие.</p> </div>
CSS
.message{ background-size: 40px 40px; background-image: linear-gradient(135deg, rgba(255, 255, 255, .05) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .05) 50%, rgba(255, 255, 255, .05) 75%, transparent 75%, transparent); box-shadow: inset 0 -1px 0 rgba(255,255,255,.4); width: 100%; border: 1px solid; color: #fff; padding: 15px; position: fixed; _position: absolute; text-shadow: 0 1px 0 rgba(0,0,0,.5); animation: animate-bg 5s linear infinite; } .info{ background-color: #4ea5cd; border-color: #3b8eb5; } .error{ background-color: #de4343; border-color: #c43d3d; } .warning{ background-color: #eaaf51; border-color: #d99a36; } .success{ background-color: #61b832; border-color: #55a12c; } .message h3{ margin: 0 0 5px 0; } .message p{ margin: 0; } @keyframes animate-bg { from { background-position: 0 0; } to { background-position: -80px 0; } }
Обратите внимание на animate-bg, который оживляет фоновые диагональные полосы. Конечно для того, чтобы увидеть этот эффект, вы должны использовать последние Webkit браузеры, такие как Chrome / Safari или Mozilla 5 +.
Уведомления будут изначально скрыты. Для этого мы будем использовать фиксированное позиционирование ( absolute значение применяется только для IE6, поскольку там нету position:fixed поддержки).
position: fixed; _position: absolute; /* IE6 only */
jQuery
Определение типа сообщения с использованием массива (array):
var myMessages = ['info','warning','error','success'];
Функция ниже скрывает уведомления. У сообщений может быть динамическая высота, поэтому, чтобы скрыть его должным образом, нам нужно рассчитать высоту каждого из них.
function hideAllMessages() { var messagesHeights = new Array(); // этот массив сохранит высоту для каждого for (i=0; i<myMessages.length; i++) { messagesHeights[i] = $('.' + myMessages[i]).outerHeight(); // заполнить массив $('.' + myMessages[i]).css('top', -messagesHeights[i]); //передвинуть элемент за viewport } }
Функция showMessage вызывается, когда документ готов.
function showMessage(type) { $('.'+ type +'-trigger').click(function(){ hideAllMessages(); $('.'+type).animate({top:"0"}, 500); }); }
При загрузке страницы, мы в первую очередь скрываем все сообщения: hideAllMessages(). Затем, для каждого триггера, мы показываем эквивалентное сообщение:
$(document).ready(function(){ // Спрятать все изначально hideAllMessages(); // Показать сообщение for(var i=0;i<myMessages.length;i++) { showMessage(myMessages[i]); } // Когда по сообщению кликнули, спрятать его $('.message').click(function(){ $(this).animate({top: -$(this).outerHeight()}, 500); }); });
Заключение
С использованием CSS3, вы можете найти бесконечные варианты оформления дизайна уведомлений. Наш вариант является лишь минимальным примером без изображений (для простоты) и “наворотов”. Но дизайн, это еще не все, функциональность и интерактивность играют здесь очень важную роль.
Высоких конверсий!