简体   繁体   English

Angular 应用程序中的 Swiper.js 拇指已同步上一个和下一个

[英]Swiper.js thumbs in Angular app synced prev & next

So I am using Swiper.js for a multi-layered carousel on angular app.所以我在 angular 应用程序上使用Swiper.js进行多层轮播。 Essentially there was three swiper-containers , who's functionalities are supposed to complement each other.本质上是三个swiper-containers ,它们的功能应该是相互补充的。 It is an extention of their Swiper thumbs gallery , where I added an extra crousel with description to the images.这是他们的Swiper thumbs Gallery的扩展,我在其中添加了一个额外的 crosel,并为图像添加了描述。

Issues:问题:

  • When I click on a thumnail, the main image is no selected along with it.当我单击缩略图时,没有选择主图像。 I need it to work like the image description.我需要它像图像描述一样工作。 Simply put, when one clicks on a thumnails, the image description and the image preview should both change correspondingly.简而言之,当点击缩略图时,图像描述和图像预览都应该相应改变。
  • Oddly the Pagition count is wrong.奇怪的是分页计数是错误的。 It says 6, instead of the correct number 8.它说 6,而不是正确的数字 8。

Below is the component html:下面是 html 组件:

 <section class="gallery-section"> <div class="gallery-left"> <div class="swiper-container gallery-text"> <div class="swiper-wrapper"> <div class="swiper-slide" *ngFor="let image of imageArray; let i = index"> <div class="image-controls"> <div class="swiper-button-prev swiper-button-mobile"></div> <div class="swiper-pagination swiper-pagination-mobile"></div> <div class="swiper-button-next swiper-button-mobile"></div> </div> <div class="image-info"> <div class="image-description">{{ image.description }}</div> <div class="image-date">{{ image.date }}</div> </div> </div> </div> </div> <div class="swiper-container gallery-thumbs"> <div class="swiper-wrapper"> <div class="swiper-slide" *ngFor="let image of imageArray; let i = index"> <figure> <img src="{{ image.img }}" alt=""> </figure> </div> </div> </div> <div class="swiper-button-next swiper-button-desktop"></div> <div class="swiper-button-prev swiper-button-desktop"></div> <div class="swiper-pagination swiper-pagination-desktop"></div> </div> <div class="gallery-right"> <div class="swiper-container gallery-main"> <div class="swiper-wrapper"> <div class="swiper-slide" *ngFor="let image of imageArray"> <figure> <img src="{{ image.img }}" alt=""> </figure> </div> </div> </div> </div> </section>

Here is initialisation from the ts file:这是 ts 文件的初始化:

 ngOnInit() { imagesLoaded(document.querySelector('.gallery-section'), function(instance) { console.log('Images loaded > swiper start'); var galleryThumbs = new Swiper('.gallery-thumbs', { spaceBetween: 5, slidesPerView: 3, freeMode: true, pagination: { el: '.swiper-pagination', type: 'fraction', }, watchSlidesVisibility: true, watchSlidesProgress: true }); var galleryText = new Swiper('.gallery-text', { slidesPerView: 1, thumbs: { swiper: galleryThumbs, }, effect: 'fade', fadeEffect: { crossFade: true }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', } }); var galleryMain = new Swiper('.gallery-main', { spaceBetween: 5, slidesPerView: 1, thumbs: { swiper: galleryThumbs }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', } }); }); }

Finally, a GIF which will hopefully make my issue easier to understand.最后,一个 GIF 希望能让我的问题更容易理解。 在此处输入图像描述

Figured it out:弄清楚了:

 ngOnInit() { imagesLoaded(document.querySelector('.gallery-section'), function(instance) { console.log('Images loaded > swiper start'); var galleryThumbs = new Swiper('.gallery-thumbs', { spaceBetween: 5, slidesPerView: 3, watchSlidesVisibility: true, watchSlidesProgress: true, }); var galleryText = new Swiper('.gallery-text', { slidesPerView: 1, effect: 'fade', fadeEffect: { crossFade: true }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', } }); var galleryMain = new Swiper('.gallery-main', { spaceBetween: 5, slidesPerView: 1, pagination: { el: '.swiper-pagination', type: 'fraction' }, thumbs: { swiper: galleryThumbs } }); galleryText.controller.control = galleryMain; galleryMain.controller.control = galleryText; }); }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM