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

У нас будет две формы – авторизация и восстановление пароля – но в конкретном случае будет видна лишь одна из них. Кликнув по ссылке (по полоске в примере), мы запустим CSS3-вращение по оси Y, что откроет нам доступ к другой форме посредством переворота.

Мы будем использовать jQuery для слежения за кликами по ссылкам, а также для добавления или удаления имени класса на элементе контейнера для форм. С помощью CSS мы будем применять трансформацию rotate (горизонтальное вращение) к обеим формам, но разница будет заключаться в 180 градусах угла, в зависимости от класса. Это позволит нам отображать формы на противоположных сторонах воображаемой платформы. Для того чтобы анимировать переход, мы будем использовать параметр CSS transition.

Шаг 1. HTML

На понадобятся 2 формы – авторизация и восстановление. У каждой формы будет кнопка подтверждения, а также поля для ввода текста/пароля:

Обратите внимание на ID элементов в форме. Мы будем широко использовать их в первой части CSS-кода. Лишь одна из форм будет видна на данный момент. Другая будет открываться в процессе анимации переворота. У каждой формы будет анкор flipLink. Клик по данному анкору будет переключать (добавлять или удалять) имя класса flipped к div’у #formContainer, что впоследствии запустит анимацию на CSS3.

Шаг 2. CSS

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

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

Параметр видимости backface важен, так как он сообщает браузеру о необходимости скрыть всю обратную сторону форм. В противном случае, у нас получится зеркальная версия формы восстановления вместо отображения лишь формы авторизации. Эффект переворота достигается за счет применения трансформации rotateY(180deg). Она вращает элемент справа налево. Так как мы указали параметр перехода, каждое вращение будет плавно анимировано.

Обратите внимание на объявление keyframe в самом низу раздела с формой. Оно определяет повторение анимации, которое не зависит от взаимодействия с пользователем. CSS-описание анимации дано ниже:

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

Теперь давайте рассмотрим, что происходит как только мы кликаем по ссылке, как к #formContainer добавляется класс flipped:

Класс flipped приводит к вращению div’ов #login и #recover на 180 градусов. Это позволяет нам спрятать форму #login. Но, так как форма #recover уже встречалась нам с обратной стороны, она становится видимой вместо того, чтобы быть невидимой.

Шаг 3. jQuery

Мы также будем использовать jQuery для слежения за кликами по анкорам flipLink. Так как мы не будем создавать панель управления для этих форм, нам нужно будет предотвратить их подтверждение.

Вот и все. Готово!

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

Читайте также: