Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>Swiper demo</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" />
  <!-- Link Swiper's CSS -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@9/swiper-bundle.min.css" />
  <!-- Demo styles -->
  <style>
  </style>
</head>
<body>
  <!-- Swiper -->
   <div class=" case__holder">
      <div class="case__box case__box--active" data-filter="all">All cases</div>
      <div class="case__box" data-filter="internet">Internet promotion</div>
      <div class="case__box" data-filter="development">Website development</div>
      <div class="case__box" data-filter="socials">Promotion in social networks</div>
      <div class="case__box" data-filter="context">contextual advertising</div>
      <div class="case__box" data-filter="video">video services</div>
    </div>
  <div class="swiper mySwiper">
    <div class="swiper-wrapper">
      <div class="swiper-slide" data-filter="development">Slide1</div>
      <div class="swiper-slide" data-filter="development">Slide 2</div>
      <div class="swiper-slide" data-filter="context">Slide 3</div>
      <div class="swiper-slide" data-filter="video">Slide 4</div>
      <div class="swiper-slide" data-filter="video">Slide 5</div>
      <div class="swiper-slide" data-filter="development">Slide 6</div>
      <div class="swiper-slide" data-filter="development">Slide 7</div>
      <div class="swiper-slide" data-filter="">Slide 8</div>
      <div class="swiper-slide" data-filter="">Slide 9</div>
      <div class="swiper-slide" data-filter="">Slide 10</div>
    </div>
    <div class="cases-slider__bottom">
      <div class="cases-slider__prev">prev</div>
     <div class="cases-slider__next">next</div>
    <div class="cases-slider__pagination"></div>
    </div>
    
  </div>
  <!-- Swiper JS -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/swiper@9/swiper-bundle.min.js"></script>
  <!-- Initialize Swiper -->
  <script>
 const $mySwiper = $(".mySwiper") // получаем jQuery element для нашего свайпер контейнера
  let swiperSlides = [ ...swiperCASES.slides ];
    $(document).on('click', '.case__box', function(e) {
      const filterData = e.target.dataset.filter;
      const check = filterData;
      
      $('.case__box').removeClass('case__box--active');
      $mySwiper.fadeOut(300, () => { // плавно скрываем его и в коллбэк функции, которая выполнится после скрытия делаем фильтрацию и тд
        swiperCASES.removeAllSlides()
        const slides = swiperSlides.filter((item, index) => $(item)[0].dataset.filter == check || filterData == "all")
      
        swiperCASES.params.grid.rows = slides.length <= swiperCASES.params.slidesPerView ? 1 : 2
        swiperCASES.appendSlide(slides)
        swiperCASES.updateProgress();
        swiperCASES.updateSize();
        swiperCASES.updateSlides();
        swiperCASES.update();
        $mySwiper.fadeIn(300) // и плавно возвращаем обратно
        $(this).addClass('case__box--active');
      })
      
    })
  </script>
</body>
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers