Создаем интерактивные табы на JavaScript с нуля

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

Введение

Табы (вкладки) являются неотъемлемой частью современных веб-интерфейсов, позволяя компактно организовать контент и улучшить пользовательский опыт. Сегодня мы рассмотрим создание простых, но функциональных табов с использованием HTML, CSS и JavaScript.

HTML структура


<div class="tabs">
    <div class="tabs__nav">
        <button class="tabs__btn active" data-tab="1">Вкладка 1</button>
        <button class="tabs__btn" data-tab="2">Вкладка 2</button>
        <button class="tabs__btn" data-tab="3">Вкладка 3</button>
    </div>
    <div class="tabs__content">
        <div class="tabs__pane active" data-tab-content="1">
            Содержимое первой вкладки
        </div>
        <div class="tabs__pane" data-tab-content="2">
            Содержимое второй вкладки
        </div>
        <div class="tabs__pane" data-tab-content="3">
            Содержимое третьей вкладки
        </div>
    </div>
</div>

CSS стили


.tabs__nav {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
}

.tabs__btn {
    padding: 10px 20px;
    border: none;
    background: #f0f0f0;
    cursor: pointer;
}

.tabs__btn.active {
    background: #007bff;
    color: white;
}

.tabs__pane {
    display: none;
}

.tabs__pane.active {
    display: block;
}

JavaScript функционал


document.addEventListener('DOMContentLoaded', function() {
    const tabsBtn = document.querySelectorAll('.tabs__btn');
    const tabsContent = document.querySelectorAll('.tabs__pane');

    tabsBtn.forEach(button => {
        button.addEventListener('click', () => {
            const tabId = button.getAttribute('data-tab');

            tabsBtn.forEach(btn => btn.classList.remove('active'));
            tabsContent.forEach(content => content.classList.remove('active'));

            button.classList.add('active');
            document.querySelector(`[data-tab-content="${tabId}"]`).classList.add('active');
        });
    });
});

Объяснение работы кода

Наша система табов состоит из трех ключевых компонентов:

  1. HTML структура создает разметку с кнопками навигации и контентными блоками. Каждая кнопка и соответствующий ей контент связаны через атрибуты data-tab и data-tab-content.
  2. CSS стили отвечают за визуальное оформление. Класс active используется для отображения активной вкладки и её содержимого. Неактивные вкладки скрываются с помощью display: none.
  3. JavaScript обрабатывает клики по кнопкам табов. При клике происходит:
  • Удаление класса active у всех кнопок и контентных блоков
  • Добавление класса active выбранной кнопке и соответствующему контентному блоку
  • Определение нужного контентного блока по значению атрибута data-tab

Заключение

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

Понравилась запись? Оцените!
Оценок: 1 Среднее: 5
Telegram
WhatsApp
VK
Facebook
Email

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

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

Рекомендуем