【问题标题】:Angular swiper slides don't snap角度滑动器幻灯片不捕捉
【发布时间】:2020-12-23 09:10:36
【问题描述】:

我正在尝试将Swiper Angular library 实施到我的 Angular 10/Ionic 5 项目中。我遇到的问题是幻灯片没有捕捉到,看起来它只是我可以拖过的一个大页面。

这是我尝试过的入门示例,它显示正确的页面,我相信,但滑动部分似乎有点偏离,没有捕捉,如果你放手它不会继续滑动,如图所示 @987654322 @。

<swiper class ="slide-pic-preview" [slidesPerView]="3" [spaceBetween]="50"
        (swiper)="onSwiper($event)" (slideChange)="onSlideChange()"
        [navigation]="true" [pagination]="{ clickable: true }">

  <ng-template swiperSlide>Slide 1</ng-template>
  <ng-template swiperSlide>Slide 2</ng-template>
  <ng-template swiperSlide>Slide 3</ng-template>
  <ng-template swiperSlide>Slide 4</ng-template>
  <ng-template swiperSlide>Slide 5</ng-template>
  <ng-template swiperSlide>Slide 6</ng-template>
</swiper>

我还在构造函数中安装了导航部分所需的所有组件:

constructor() {
SwiperCore.use([Navigation, Pagination, Scrollbar, A11y]); }

导航按钮除了触发 onSlideChange 事件之外什么也不做,正常的滑动也是如此,但不是每个页面,而是每 20 像素拖动一次,事件就会被触发。

并且样式被导入到modules scss文件中。

更新:我刚刚发现调整浏览器窗口的大小可以解决这个问题,现在我只需要找出如何让它工作

【问题讨论】:

  • “slides don't snap”是什么意思?
  • 如果您单击第二个链接,您可以在示例中看到它在拖动后会“捕捉”到每个页面,而不仅仅是停留在原来的位置或您拖动它的位置
  • 尝试在元素上设置固定的宽度和高度(例如 100%)。
  • 已经试过了,我找到了解决办法。

标签: angular typescript ionic-framework swiper


【解决方案1】:

这是@R4yYs 的答案,但进行了修改以停止 swiper 索引重置。否则,如果您转到另一个页面/选项卡,这会导致 Ionic/ angular 中的幻灯片索引重置为 0。

 @ViewChild('swiper') swiper: Swiper;
  hasRunContentCheck = false;

  ngAfterContentChecked(): void {
    if (this.swiper && !this.hasRunContentCheck) {
      this.hasRunContentCheck = true;
      this.swiper.updateSwiper({});
    }
  }

【讨论】:

    【解决方案2】:

    所以我自己找到了解决方案:

    @ViewChild('swiper') swiper: Swiper;  
    
      ngAfterContentChecked(): void
      {
        if(this.swiper){
          // @ts-ignore
          //This really works, trust me
          this.swiper.updateSwiper({});
        }
      }
    

    一旦进入用户的视野就更新刷卡器可以解决此问题。

    【讨论】:

    • 如果您转到另一个页面/选项卡,这会导致 Ionic/ angular 中的幻灯片索引重置为 0。有什么解决办法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多