Задать вопрос
@sanekstr

Как сделать плавное перелистывание контента табов?

Здравствуйте, помогите пожалуйста, имеются табы, их можно перелистывать как слайдер.
Но хотелось бы чтобы перелистывание контента табов было плавным. Помогите пожалуйста сделать. Заранее большое спасибо

ul.tabs li.current{
	color: red; 
}

.tab-content{
	display: none;
}

.tab-content.current{
	display: inherit;
    border: 1px solid green;
}


<div class="tabs">
    <button class="tab_nav" id="next_left"> <- </button>
    <button class="tab_nav" id="next_right"> -> </button>
    <ul class="tabs">
        <li class="tab-link current" id="link-1" data-tab="tab-1">One</li>
        <li class="tab-link" id="link-2" data-tab="tab-2">Two</li>
        <li class="tab-link" id="link-3" data-tab="tab-3">Three</li>
    </ul>
    <div id="tab-1" class="tab-content current">
        content 1
    </div>
    <div id="tab-2" class="tab-content">
        content 2
    </div>
    <div id="tab-3" class="tab-content">
        content 3
    </div>              
</div>


$(document).ready(function(){
    $('ul.tabs li').click(function(){
        var tab_id = $(this).attr('data-tab');
        $('ul.tabs li').removeClass('current');
        $('.tab-content').removeClass('current');
        $(this).addClass('current');
        $("#"+tab_id).addClass('current');
    });
});

$(document).ready(function(){
    $('.tab_nav').click(function(){
        if(this.id == 'next_left') {
            $d = 'l';
        }
        if(this.id == 'next_right') {
            $d = 'r';
        }
        $max = document.getElementsByClassName('tab-link').length;
        $currentlink = document.getElementsByClassName('current')[0].id;
        $arraylink = $currentlink.split('-');
        $curlink = $arraylink[1];
        $('ul.tabs li').removeClass('current');
        $('.tab-content').removeClass('current');
        if ($d == 'l') {
            if ($curlink == 1) {
                $link = "#link-"+ $max;
                $tab = "#tab-"+ $max;
            }
            else {
                $link = "#link-" + ($curlink-1);
                $tab = "#tab-" + ($curlink-1);
            }
        }
        else if ($d == 'r' ) {
            if ($curlink == $max) {
                $link = "#link-1";
                $tab = "#tab-1";
            }
            else {
                $link = "#link-" + (parseInt($curlink)+1);
                $tab = "#tab-" + (parseInt($curlink)+1);
            }
        }
        $($link).addClass('current');
        $($tab).addClass('current');
    });
});
  • Вопрос задан
  • 1661 просмотр
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
Решения вопроса 1
handball14
@handball14
frontend developer
Например добавить класс
.t05{
 -webkit-transition: all 0.5s ease;
	-webkit-transition-delay: 0.5s;
  transition: all 0.5s easy;
  transition-delay: 0.5s; 
}

тут pen рабочий
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы