HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/quadcode/frontend/src/js/components/swiper/SwiperResponsibility.js
import Swiper, { Pagination, Autoplay, EffectFade, Parallax } from 'swiper';
import 'swiper/css/autoplay';
const breakpoint = window.matchMedia('(min-width: 1200px)');

export const swiperResponsibility = new Swiper('.slider-responsibility__swiper', {
  modules: [Pagination, Autoplay, EffectFade, Parallax],
  effect: 'fade',
  parallax: true,
  init: false,
  fadeEffect: {
    crossFade: true
  },
  speed: 800,
  slidesPerView: 1,
  autoplay: {
    delay: 7000,
    pauseOnMouseEnter: false,
    disableOnInteraction: true,
  },
  loop: true,
  pagination: {
    el: '.pagination',
    type: 'bullets',
    bulletClass: 'pagination__item',
    bulletActiveClass: 'pagination__item_active',
    renderBullet: () => {
      return `
            <div class="pagination__item">
                <div class="pagination__progress">
                    <span class="pagination__progress-span"></span>
                </div>
                <div class="pagination__text defaultSmall"></div>
            </div>`;
    },
  },
  allowTouchMove: !breakpoint.matches
});

swiperResponsibility.on('init', () => {
  const video = document.querySelector('.slider-responsibility__video--sustainability');

  if (!video) return false;

  video.currentTime = 0;

  swiperResponsibility.on('slideChange', () => {
    const pagination = document.querySelector('.pagination');

    if (!pagination) return

    const itemPagination = pagination.querySelectorAll('.pagination__item');
    removeActive(itemPagination);

    for (let i = 0; i <= itemPagination.length; i++) {
      if (swiperResponsibility.realIndex === i) {
        if (!itemPagination[i]) return;
        itemPagination[i].classList.add('pagination__item_active');
      }
    }

    video.play()
    switch(swiperResponsibility.activeIndex) {
      case 2:
        setTimeout(() => {
          video.currentTime = .65;
          video.pause();
        }, 600)
        break;
      case 3:
        setTimeout(() => {
          video.currentTime = 1.33;
          video.pause();
        }, 680)
        break;
      case 4:
        setTimeout(() => {
          video.currentTime = 2;
          video.pause();
        }, 600)
        break;
      case 5:
        setTimeout(() => {
          video.currentTime = 0;
          video.pause();
        }, 650)
        break;
    }
  });

  const removeActive = (items) => {
    items.forEach(item => {
      if (!item) return;

      item.classList.remove('pagination__item_active');
    })
  }
});