如何检测swiper js中的当前幻灯片?

How to detect current slide in swiper js?

正在为滑块使用 swiper js,并希望检测当前 image/slide。我如何使用 HTML 和 JS 进行检测?有什么想法吗?

<div class="swiper-container">
    <div class="swiper-wrapper" align="center">
        <div class="swiper-slide">
            <img src="images/card_gold.png" width="80%" align="middle" onclick="desc(\'' + card1 + '\')">
        </div>
        <div class="swiper-slide">
            <img src="images/card_platinum.png" width="80%" align="middle" onclick="desc(\'' + card2 + '\')">
        </div>
        <div class="swiper-slide">
            <img src="images/card_silver.png" width="80%" align="middle" onclick="desc(\'' + card3 + '\')">
        </div>
    </div>
    <!-- Add Arrows -->
    <div class="swiper-button-next"></div>
    <div class="swiper-button-prev"></div>
</div>

据我从他们的演示中可以看出,当前幻灯片始终在当前幻灯片元素上具有 .swiper-slide-active class。

您可以使用 jQuery 选择器从活动幻灯片中获取属性。这是我获取其图像源的示例:

$('.swiper-slide-active img').attr('src')

非常简单。只需使用这个:

swiper.activeIndex

截至 2016 年 5 月,他们添加了 realIndex 属性!

swiper.realIndex

https://github.com/nolimits4web/Swiper/pull/1697

注意事项:

  • 属性 作为字符串返回
  • 属性以0开头,不像 循环模式下的 activeIndex 在我的例子中以 1
  • 开头

扩展已经引用 realIndex 属性 的答案,这里是使用 realIndex 和 [=14= 获取当前幻灯片元素的方法] 属性(包含实例所有幻灯片的数组)获取幻灯片元素:

let index_currentSlide = instance_swiper.realIndex;
let currentSlide = instance_swiper.slides[index_currentSlide]

您可以在构造实例时使用它(例如)在 slideChange 事件发生时获取当前幻灯片并操作元素:

const instance_swiper = new Swiper(".swiper-container", {
  on: {
    slideChange: function () {
      const index_currentSlide = instance_swiper.realIndex;
      const currentSlide = instance_swiper.slides[index_currentSlide]
      //
      currentSlide.style.background = "red";
    },
  },
});