Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.06.2017, 12:13
Новичок на форуме
Отправить личное сообщение для NeXan Посмотреть профиль Найти все сообщения от NeXan
 
Регистрация: 23.06.2017
Сообщений: 7

Как анимировать слайдер на сайте посредством AddClass или ToggleClass?
Здравствуйте. Обратите внимание на слайдер на сайте https://v-thailand.com/ Я его создал на основе простого исходного кода переключаемых вкладок с контентом. При перемещении указателя мыши по правой колонке с заголовками, скрипт автоматически добавляет и удаляет класс "active" в классах "tabs__content" и "tabs-title".

Поэтому, чтобы реализовать автоматическое переключение вкладок по заданному промежутку времени, неоходимо прописать JS код так, чтобы класс "active" автоматически добавлялся к одной вкладке, затем удалялся и добавлялся к следующей. А при наведения указателя мыши на любой элемент слайдера, анимация приостанавливалась. Подскажите, как все это реализовать? Спасибо!

Сам скрипт слайдера:

(function($) {
$(function() {
 
    $('ul.tabs__caption').on('mouseover', 'div:not(.active)', function() {
        $(this)
            .addClass('active').siblings().removeClass('active')
            .closest('div.tabs').find('div.tabs__content').removeClass('active').eq($(this).index()).addClass('active');
    });
});
})(jQuery);
Ответить с цитированием
  #2 (permalink)  
Старый 23.06.2017, 15:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

автопрокрутка tabs
NeXan,
$(function() {
    var parent = $(".tabs"),
        title = $(".tabs-title", parent),
        content = $(".tabs__content", parent),
        i = 0,
        len = title.length,
        timer;
    title.each(function(indx, element) {
        $(this).mouseenter(function() {
            i = indx;
            show(true)
        })
    });

    function show(hold) {
        window.clearTimeout(timer);
        title.removeClass("active").eq(i).addClass("active");
        content.removeClass("active").eq(i).addClass("active");
        if (!hold) {
            i = ++i % len;
            timer = window.setTimeout(show, 3E3)
        }
    }
    parent.mouseleave(function() {
        show(false)
    })
});

Последний раз редактировалось рони, 23.06.2017 в 15:18.
Ответить с цитированием
  #3 (permalink)  
Старый 24.06.2017, 19:47
Новичок на форуме
Отправить личное сообщение для NeXan Посмотреть профиль Найти все сообщения от NeXan
 
Регистрация: 23.06.2017
Сообщений: 7

Спасибо! Мне еще предложили вот такой вариант!
(function($) {
$(function() {
  var count = 0;
  var pos = 0;
  var newTimer = setInterval(function(){timer()}, 1100);
  function timer() {
    $('.tabs-title').removeClass('active').eq(count).addClass('active')
      .closest('div.tabs').find('div.tabs__content').removeClass('active').eq(count).addClass('active');
    count++;
    if (count > 4) count = 0;
  }
  function stopTimer() {
    clearInterval(newTimer);
  }
  $('.tabs').on('mouseleave', function () {
     if (pos.length !== 0) {
        count = pos;
      } else {
      count = 0;
      }
     newTimer = setInterval(function(){timer()}, 1100);
    function timer() {
      $('.tabs-title').removeClass('active').eq(count).addClass('active')
        .closest('div.tabs').find('div.tabs__content').removeClass('active').eq(count).addClass('active');
      count++;
      if (count > 4) count = 0;
    }
  });
  $('.tabs').on('mouseover', function() {
    stopTimer();
  });

  $('.tabs-title').on('mouseover', function(){
    pos = $(this).index();
  });
  $('img').closest('.tabs__content').on('mouseover', function(){
    pos = $(this).index();
  });

  $('ul.tabs__caption').on('mouseover', 'div:not(.active)', function(e) {
    stopTimer();
    $(this)
      .addClass('active').siblings().removeClass('active')
      .closest('div.tabs').find('div.tabs__content').removeClass('active').eq($(this).index()).addClass('active');
  });
  });
})(jQuery);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать эффект соединяющихся звёзд на сайте Georgian Элементы интерфейса 2 22.08.2016 17:19
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как воспроизвести звук посредством JS на телефоне ? FreeDas Мобильный JavaScript 14 06.03.2013 14:52
Как сделать что бы при регистрации человека на моем сайте у него не появлялось... drunkwolfs Общие вопросы Javascript 2 07.08.2012 10:58
Как определить цвет (темный он или светлый)? mouse_web Элементы интерфейса 6 22.07.2009 14:35