Advertisement
Igor150195

слайдер для тавбов

May 16th, 2024 (edited)
631
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <script>
  2.      document.querySelectorAll('.step-tab-link:nth-child(n+2) .step-content').forEach(function(element) {
  3.         element.style.display = 'none';
  4.     });
  5.  
  6.     document.querySelectorAll('.step-tab-link:nth-child(n+2) .step-content-text').forEach(function(element) {
  7.         element.style.opacity = 0;
  8.     });
  9.  
  10.     document.addEventListener('DOMContentLoaded', function() {
  11.         function handleStepTabLinks() {
  12.             // Функция для обработки клика по элементу
  13.             $('.step-tabs-menu .step-tab-link').on('click', function(event) {
  14.                 // Предотвращаем переход по ссылке
  15.                 event.preventDefault();
  16.  
  17.                 let $this = $(this);
  18.  
  19.                 // Убираем у всех элементов класс active и скрываем текст step-content
  20.                 $('.step-tabs-menu .step-tab-link').removeClass('active');
  21.                 $('.step-tabs-menu .step-content').stop().slideUp(400, function(){
  22.                     $('.step-content-text').not($this.find('.step-content-text')).css('opacity', 0);
  23.                 });
  24.  
  25.                 // Добавляем класс active и отображаем текст step-content только для текущего элемента
  26.                 $(this).addClass('active');
  27.                 $(this).find('.step-content').stop().slideDown(400, function(){
  28.                     $this.find('.step-content-text').css('opacity', 1);
  29.                 });
  30.             });
  31.         }
  32.  
  33.         function clickStepTabLinks() {
  34.             // Устанавливаем текущий индекс
  35.             var currentIndex = 1;
  36.  
  37.             // Создаем MediaQueryList объект для отслеживания разрешения экрана
  38.             var mediaQuery = window.matchMedia('(max-width: 991px)');
  39.  
  40.             // Функция для клика по элементу и перехода к следующему
  41.             function clickNext() {
  42.                 // Проверяем стиль display элемента с классом nav-menu-wrap и совпадение с медиа-запросом
  43.                 if (mediaQuery.matches && $('.nav-menu-wrap').css('display') === 'block') {
  44.                     // Если разрешение 991px и ниже, и nav-menu-wrap имеет display block, останавливаем выполнение
  45.                     return;
  46.                 }
  47.  
  48.                 // Кликаем по текущему элементу
  49.                 $('.step-tabs-menu .step-tab-link').eq(currentIndex).click();
  50.  
  51.                 // Увеличиваем индекс, или сбрасываем его, если он превышает количество элементов
  52.                 currentIndex = (currentIndex + 1) % $('.step-tabs-menu .step-tab-link').length;
  53.             }
  54.  
  55.             // Запускаем функцию clickNext с интервалом в 3 секунды
  56.             setInterval(clickNext, 5000);
  57.         }
  58.  
  59.         // Вызываем обе функции при загрузке страницы
  60.         handleStepTabLinks();
  61.         clickStepTabLinks();
  62.     });
  63. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement