Swipper contoller thumb in loop ( async )
See original GitHub issuei have template
<swiper :options="swiperOptionTop" class="gallery-top" ref="swiperTop">
<swiper-slide v-for="(slide,index) in swiperSlides" :key="index" :class="'slide-' + slide.id">
<img alt="" :src="slide.img">
</swiper-slide>
<div class="swiper-button-next swiper-button-white" slot="button-next"></div>
<div class="swiper-button-prev swiper-button-white" slot="button-prev"></div>
</swiper>
<!-- swiper2 Thumbs -->
<swiper :options="swiperOptionThumbs" class="gallery-thumbs" ref="swiperThumbs">
<swiper-slide v-for="(slide,index) in swiperSlides" :key="index" :class="'slide-' + slide.id">
<img alt="" :src="slide.img">
</swiper-slide>
</swiper>
and script
data () {
return {
swiperOptionTop: {
spaceBetween: 10,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
}
},
swiperOptionThumbs: {
spaceBetween: 10,
centeredSlides: false,
slidesPerView: 'auto',
touchRatio: 0.2,
slideToClickedSlide: true
},
swiperSlides: [
{id: 1, img: '/static/images/products/product_01.jpg'},
{id: 2, img: '/static/images/products/product_02.jpg'},
{id: 3, img: '/static/images/products/product_03.jpg'}
],
swiperSlidesThumb: [
{id: 1, img: '/static/images/products/product_01.jpg'},
{id: 2, img: '/static/images/products/product_02.jpg'},
{id: 3, img: '/static/images/products/product_03.jpg'}
]
}
},
mounted () {
this.$nextTick(() => {
const swiperTop = this.$refs.swiperTop.swiper
const swiperThumbs = this.$refs.swiperThumbs.swiper
swiperTop.controller.control = swiperThumbs
swiperThumbs.controller.control = swiperTop
})
}
the thumbnail not controller main slider.
Issue Analytics
- State:
- Created 6 years ago
- Comments:21
Top Results From Across the Web
Swipper contoller thumb in loop ( async ) - Bountysource
i have template <swiper :options="swiperOptionTop" class="gallery-top" ref="swiperTop"> <swiper-slide v-for="(slide,index) in swiperSlides" ...
Read more >Swiper.js control two instances with different option loop
But i want my slider is loop=true and my thumb is loop=false . Here is my setting var galleryTop = new Swiper('.gallery-top', ...
Read more >Swiper API
Swiper is the most modern free mobile touch slider with hardware accelerated transitions and amazing native behavior.
Read more >Swiper Slider vertical thumbnails - JSFiddle - Code Playground
<div class="swiper-container gallery-thumbs">. 2. <div class="swiper-wrapper">. 3. <div class="swiper-slide">1</div> ... loop: true,. 4. loopedSlides: 50,.
Read more >Responsive and Flexible Mobile Touch Slider - Swiper
Swiper is a powerful javascript library to implement responsive, accessible, ... pagination; parallax; scrollbar; thumbs; virtual; zoom.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
I can confirm its not working.
controller
does not exist on$swiper
. Adding it manually also does not work. Trying fallback to solution from swiper below v4, and usingparams.control
also does not work. I’m using latest versions:My temporary workaround is to use
slideChange
event on thumbnail instance like this:@slideChange="onThumbnailChange"
where
onThumbnailChange
function looks like this:I’m using
activeIndex
instead ofrealIndex
because in my case i setloop
parameter to true (for reason why, check note here: https://swiperjs.com/api/#events and search for mySwiper.activeIndex).In my case it works fine. Hope it helps till proper fix.
A bit late, but the solution for you guys is here 👍
To access the Swiper instance, donc forget the
$
beforeswiper
:this.$refs.swiperTop.$swiper
instead ofthis.$refs.swiperTop.swiper