Вкладки на javaScript

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

Конечный результат можно посмотреть здесь:

See the Pen Simple Tabs on JS by Alex (@Asmodey) on CodePen.

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

Где tabs — блок-обертка, tab — заголовки вкладок, по которым осуществляется клик мышью, tabContent — содержимое вкладок.

Особенностью данного кода является то, что в html коде вкладка и ее содержимое не связаны.

Добавим оформление CSS для вкладок.

Как видно, в css введено два класса: hide — который служит для скрытия содержимого вкладки и show который показывает ее. Также есть класс whiteborder — который выделяет активную вкладку.

Как вы уже поняли, мы будем с помощью JS присваивать вкладкам нужные классы CSS, тем самым скрывая или отображая их.

Пишем код в JS

Для начала объявим глобальные переменные tab и tabContent, в которых будут содержаться элементы массива объектов с соответствующими классами.

Скрывать вкладки при первоначальной загрузке будем с помощью JS. При загрузке страницы выполним следующий код:

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

Функция hideTabsContent запускает цикл от параметра, который указывается при вызове функции до окончания массива tabContent. Затем, каждому элементу tabContent удаляется класс show, прибавляет класс hide удаляет класс отвечающий за активную вкладку whiteborder.

Обратите внимание, мы работаем с двумя уровнями вкладок — c заголовками tab и содержимым tabContent.

Теперь будем обрабатывать клик мышью по заголовку вкладки. Для этого напишем функцию:

Данная функция отслеживает все клики мышью, которые происходят внутри области имеющей id=«tabs». Далее проверяется элемент, на котором выполнен клик. Если данный элемент имеет class=«tab»? то запускается цикл, назначение которого выяснить индекс элемента, на котором совершили клик мышью в массиве tab. Очевидно, что данный порядковый номер можно использовать для того, чтобы отобразить нужный элемент tabContent. Как только необходимый элемент найден, цикл запустит функцию showTabsContent и будет остановлен с помощью break.

Осталось рассмотреть функцию showTabsContent

В первой строке, мы проверяем наличие у блока по которому совершили клик класса hide, при наличии данного класса вызывается функция hideTabsContent, которая скрывает все блоки вкладок. Затем, активной вкладке добавляется класс whiteborder, удаляется класс hide и добавляется класс show.

Рекомендуем изучить урок по созданию раскрывающегося меню на JS.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *