angular2-useful-swiper icon indicating copy to clipboard operation
angular2-useful-swiper copied to clipboard

Angular Thumbs Gallery

Open xBelabz opened this issue 5 years ago • 4 comments

Hi, I'm trying to make the Thumbs Gallery works with Angular but i got this error: Cannot read property 'addClass' of undefined at Swiper.init

Here is my configs:

public galleryThumbs: any = {
    spaceBetween: 10,
    slidesPerView: 4,
    freeMode: true,
    watchSlidesVisibility: true,
    watchSlidesProgress: true,
  }

  public galleryTop: any = {
    spaceBetween: 10,
    navigation: {
      nextEl: '.swiper-button-next',
      prevEl: '.swiper-button-prev',
    },
    thumbs: {
      swiper: this.galleryThumbs
    }
  }

Here's my HTML:

<swiper [config]="galleryTop">
  <div class="swiper-container gallery-top">
    <div class="swiper-wrapper">
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
    </div>
  </div>
</swiper>

<swiper [config]="galleryThumbs">
<div class="swiper-container gallery-thumbs">
  <div class="swiper-wrapper">
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
  </div>
</div>
</swiper>

<!-- Add Arrows -->
<div class="swiper-button-next swiper-button-white"></div>
<div class="swiper-button-prev swiper-button-white"></div>

Any advice please would be appreciated. All the best.

xBelabz avatar Dec 16 '19 15:12 xBelabz

Hey xBelabz Did you ever get this working? I tried and failed :(

sukhbains avatar Jun 10 '20 10:06 sukhbains

Hi there, to get the thumbs working, you actually need to reference to the swipe object. This example should work Template:

<swiper [config]="galleryTop" #carousel>
  <div class="swiper-container gallery-top">
    <div class="swiper-wrapper">
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
      <div class="swiper-slide"></div>
    </div>
  </div>
</swiper>

<swiper [config]="galleryThumbs" #carouselThumbs>
<div class="swiper-container-thumbs">
  <div class="swiper-wrapper">
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
    <div class="swiper-slide"></div>
  </div>
</div>
</swiper>

In your component

 @ViewChild( 'mainCarousel', { static: false } ) carousel: SwiperComponent
 @ViewChild( 'thumbsCarousel', { static: false } ) carouselThumbs: SwiperComponent


public galleryThumbs: any = {
    spaceBetween: 10,
    slidesPerView: 4,
    freeMode: true,
    watchSlidesVisibility: true,
    watchSlidesProgress: true,
  }

  public galleryTop: any = {
    spaceBetween: 10,
    navigation: {
      nextEl: '.swiper-button-next',
      prevEl: '.swiper-button-prev',
    },
    thumbs: {
      swiper: this.carouselThumbs.swiper
    }
  }

Hope it helps you

fabiangarga avatar Nov 17 '20 22:11 fabiangarga

Hi @fabiangarga . I tried to copy your code but got this error:

Property 'carouselThumbs' is used before its initialization.ts(2729)  
app.component.ts(12, 3): 'carouselThumbs' is declared here.

This is the demo codebase: CodeSandbox Can you help fix the error ?

LiemLT avatar Apr 21 '21 23:04 LiemLT

did anyone get this option working?

frosales14 avatar Jun 10 '21 16:06 frosales14