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

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

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

Создание HTML разметки вкладок

<div class="content">
        <div class="tabs">
                <span class="tabs_item">Вкладка 1</span>
                <span class="tabs_item">Вкладка 2</span>
                <span class="tabs_item">Вкладка 3</span>        
        </div>
        <div class="tabs_content">
                <div class="tabs_content-item">Контент вкладки 1</div>
                <div class="tabs_content-item">Контент вкладки 2</div>
                <div class="tabs_content-item">Контент вкладки 3</div>
        </div>
</div>

Как видите тут нет ничего сложного. Класс .content здесь можете не использовать на своё усмотрение. Он особой роли не играет и чуток попозже покажу, что нужно сделать, чтобы использовать скрипт на странице несколько раз.

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

Если будет удобнее, то можете переопределить теги в кнопках по собственному усмотрению. Самое главное оставить классы. Вы можете сделать, например так:

<ul class="tabs">
        <li class="tabs_item">Вкладка 1</li>
        <li class="tabs_item">Вкладка 2</li>
        <li class="tabs_item">Вкладка 3</li>
</ul>

В общем, подстраивайте все под свои нужды и структуру вёрстки. Все просто.

Заставляем вкладки работать с помощью jQuery

$(".tabs_content-item").not(":first").hide();
$(".tabs_item").click(function() {
  $(".tabs_item").removeClass("active").eq($(this).index()).addClass("active");
  $(".tabs_content-item").hide().eq($(this).index()).fadeIn()
}).eq(0).addClass("active");

Тут все классы уже подставлены относительно HTML выше. Поэтому просто вставляете в свой файл .JS и будет работать. Однако обязательно нужно подключить библиотеку jquery. Без неё ничего не заработает. Однако это и не удивительно.

Для этого просто подключите файл jquery из вашего проекта или же просто скопируйте строку ниже и вставьте в html разметку сайта перед всеми подключёнными скриптами.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

Там где прописано 1.11.1 в строке, можете заменить на необходимую версию jq.

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

$(".content .tabs_content-item").not(":first").hide();
$(".content .tabs_item").click(function() {
    $(".content .tabs_item").removeClass("active").eq($(this).index()).addClass("active");
    $(".content .tabs_content-item").hide().eq($(this).index()).fadeIn()
}).eq(0).addClass("active");

Стилизация вкладок

Здесь уже импровизируйте сами. Из jquery кода ясно видно, что в активным вкладкам происходит добавление дополнительно класса .active. Относительно этого как раз и стоит "плясать".

.tabs_item.active {
    background-color: red;
    border: 1px solid blue;
}

Как видите все очень просто. Если у вас есть какие-нибудь идеи, как можно улучшить данное решение, то пишите. Однако я, например, не вижу в этом смысла. Все и так прекрасно работает) .

Ну и самое главное делитесь записью в соц. сетях. Это помогает раскрутке проекта.

Поставь лайк и поделись с друзьями!