Задать вопрос
raselgit
@raselgit
Веб-дизайнер

Как сделать автоматическое переключение вкладок?

Есть такой переключатель слайдов:
<nav>
  <a href="#0" class="active" data-id="1">Запуск магазина</a>
  <a href="#0" data-id="2">Обучение сотрудников</a>
  <a href="#0" data-id="3">IT-поддержка 24/7</a>
  <a href="#0" data-id="4">Маркетинг</a>
</nav>
<div class="slides">
  <div class="slide active" data-id="1">Слайд 1</div>
  <div class="slide" data-id="2">Слайд 2</div>
  <div class="slide" data-id="3">Слайд 3</div>
  <div class="slide" data-id="4">Слайд 4</div>
</div>

И такой jQuery код, отвечающий за переключение вкладок:
$(function(){
	$('#support nav a').click(function(e) {
		e.preventDefault();
		$(this).addClass('active').siblings().removeClass('active');
		var tab = $(this).data('id');
		$('#support .slide[data-id="' + tab + '"]').addClass('active').siblings().removeClass('active');
	});
});

Как сделать так, чтобы вкладки автоматически переключались между собой по порядку через определенное время, а при выборе нужного пункта меню (слайда) автоматическое переключение отключалось?
  • Вопрос задан
  • 1633 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@MrTimon
Можно написать ф-цию для перехода на следующий слайд аля:
function showNextSlide() {
        var $activeslide = $('#support .slide.active');
        var $nextslide = $activeslide.next();
        if ($nextslide.length == 0) {
            $nextslide = $('#support .slide').first();
        }
        $activeslide.removeClass('active');
        $nextslide.addClass('active');
    }

ну или какую-то полутше ) . А потом пишеш
var loop = window.setInterval('showNextSlide',1000);

и в свой метод клик на ссылку дополнительно обнулить значение loop
$('#support nav a').click(function(e) {
    e.preventDefault();
    $(this).addClass('active').siblings().removeClass('active');
    var tab = $(this).data('id');
    $('#support .slide[data-id="' + tab + '"]').addClass('active').siblings().removeClass('active');

//добавить эти строки
    window.clearInterval(loop);
    loop = null;
  });


должно работать
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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